栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java网络编程练习(客户端与服务器相互对话)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java网络编程练习(客户端与服务器相互对话)

服务器和客户端相互对话,使用打印流和缓冲流包装后,提高效率

客户端

package com.m.demo5;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.Scanner;

public class ClientSocket {

	public static void main(String[] args) throws IOException {
		Socket client=new Socket("127.0.0.1",9999);//创建客户端 本机ip地址,端口号随便输的
//		OutputStream cops = client.getOutputStream();//获取客户端输出流对象
		///使用打印流和缓冲流来提高效率,实现相互对话
		///使用字符打印流需要字符对象,所以需要转换流 转换
//		OutputStreamWriter osw=new OutputStreamWriter(cops);
		
//		InputStream cips = client.getInputStream();//获取客户端输入流对象,用来接受服务器消息
		PrintWriter ps=new PrintWriter(new OutputStreamWriter(client.getOutputStream()),true);//自动更新缓冲区
		BufferedReader br=new BufferedReader(new InputStreamReader(client.getInputStream()));
		Scanner input = new Scanner(System.in);
		while(true) {
			System.out.println("请输入信息");
			String str=input.nextLine();
			if(str.equals("end")) {
				break;
			}
			ps.println(str);//向服务器发送信息
			
			接收信息
			System.out.println("服务器说:"+" "+br.readLine());
			
		}
		
		/关闭流和客户端
		ps.close();
		br.close();
		client.close();
		

	}

}

服务器

package com.m.demo5;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;

public class ServerSocketTcp {

	public static void main(String[] args) throws IOException {
		System.out.println("等待客户端信息");
		//创建服务器对象
		ServerSocket server=new ServerSocket(9999);//指定和客户端一致的端口号
		Socket accept = server.accept();//使用accept 调用输入 输出方法
		
		///接受信息
		BufferedReader br=new BufferedReader(new InputStreamReader(accept.getInputStream()));
		发送信息
		PrintWriter pw=new PrintWriter(new OutputStreamWriter(accept.getOutputStream()),true);
		Scanner input = new Scanner(System.in);
		while(true) {
			System.out.println(accept.getInetAddress()+"发来消息:"+br.readLine());
			System.out.println("请服务器输入信息");
			String str=input.nextLine();
			if(str.equals("end")) {
				break;
			}
			pw.println(str);
			
			
		}
		
		///关闭流和服务器
		pw.close();
		br.close();
		accept.close();
		server.close();
		
		

	}

}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/763771.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号