利用tcp协议写的一个简单的聊天案例:
服务端:
Scanner input = new Scanner(System.in);
try {
//创建socket服务端,并指定端口号
ServerSocket server = new ServerSocket(2369);
System.out.println("服务端已启动...");
//服务端监听此套接字,并返回socket对象
Socket accept = server.accept();
while(true) {
//InetAddress inetAddress = accept.getInetAddress();
//从套接字中获取相应的流对象和客户端进行通话
InputStream is = accept.getInputStream();
OutputStream os = accept.getOutputStream();
//将字节流转换为字符流
InputStreamReader isr = new InputStreamReader(is);
//将流加入缓冲区
BufferedReader br = new BufferedReader(isr);
//将输出流转换为打印流
PrintWriter printWriter = new PrintWriter(os,true);
String readLine = br.readLine();
System.out.println(readLine);
System.out.print("服务端输入:");
String next = input.next();
printWriter.println(next);
//printWriter.flush();
//accept.shutdownOutput();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
客户端:
Scanner input = new Scanner(System.in);
try {
Socket socket = new Socket("127.0.0.1", 2369);
while (true) {
InputStream is = socket.getInputStream();
OutputStream os = socket.getOutputStream();
// 将字节流转换为字符流
InputStreamReader isr = new InputStreamReader(is);
// 将流加入缓冲区
BufferedReader br = new BufferedReader(isr);
// 将输出流转换为打印流
PrintWriter printWriter = new PrintWriter(os, true);
System.out.print("客户端输入:");
String next = input.next();
printWriter.println(next);
// printWriter.flush();
//socket.shutdownOutput();
String readLine = br.readLine();
System.out.println(readLine);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}