java中使用Socket实现客户端与服务器端的通讯聊天

服务器端代码:

 
 
import java.net.* ;
import java.io.* ;
public class Main{
	public static void main(String args[]) throws Exception {	// 所有异常抛出
		ServerSocket server = null ;		// 定义ServerSocket类
		Socket client = null ;	// 表示客 户端
		BufferedReader buf = null ;	// 接收输入流
		BufferedReader input = null;
		PrintStream out = null ;		// 打印流输出最方便
		input = new BufferedReader(new InputStreamReader(System.in)) ;
		server = new ServerSocket(8888) ;	// 服务器在8888端口上监听
		boolean f = true ;	// 定义个标记位
		while(f){
			System.out.println("服务器运行,等待客户端连接。") ;
			client = server.accept() ;		// 接收客户端连接
			buf = new BufferedReader(new InputStreamReader(client.getInputStream())) ;
			out = new PrintStream(client.getOutputStream()) ;
			boolean flag = true ;	// 标志位,表示可以一直接收并回应信息
			while(flag){
				String str = buf.readLine() ;		// 接收客户端发送的内容
				System.out.println(str) ;	// 回应信息
				System.out.print("服务器端:");
				String echo = input.readLine() ;
				out.println("服务器端: " + echo) ;
				if(echo==null||"".equals(echo)){	// 表示没有内容
					flag = false ;	// 退出循环
				}else{
					if("bye".equals(echo)){	// 如果输入的内容为bye表示结束
						flag = false ;
					}
				}
			}
			client.close() ;
		}
		server.close() ;
	}
};


客户端代码:

 
 
import java.net.* ;
import java.io.* ;
public class Main{
	public static void main(String args[]) throws Exception {	
		Socket client = null ;	// 表示客户端
		client = new Socket("localhost",8888) ;//请输入要连接的ip
		BufferedReader buf = null ;	// 一次性接收完成
		PrintStream out = null ;	// 发送数据
		BufferedReader input = null ;	// 接收键盘数据
		input = new BufferedReader(new InputStreamReader(System.in)) ;
		buf = new BufferedReader(new InputStreamReader(client.getInputStream())) ;
		out = new PrintStream(client.getOutputStream()) ;
		boolean flag = true ;		// 定义标志位
		while(flag){
			System.out.print("客户端: ") ;
			String str = input.readLine() ;	// 接收键盘的输入信息
			out.println("客户端 : "+str) ;
			if("bye".equals(str)){
				flag = false ;
			}else{
				String echo = buf.readLine() ;	// 接收返回结果
				System.out.println(echo) ;
			}
		}
		buf.close() ;
		client.close() ;
	}
};


运行步骤及结果:

1.先运行服务器,等待客户端连接。


2.运行客户端,并且向服务器发消息,等待服务端回复。


3.服务端收到来自客户端的消息,并回复。

      

4.服务器端与客户端进行聊天。

            

猜你喜欢

转载自blog.csdn.net/sliver1836/article/details/80166657