话不多说,直接上代码,注解很详细
服务器代码
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
/**
* @ClassName TalkServer
* @Description 实现客户端与服务器端的 聊天功能,对发信息
* @Author 码农天宇
* @Date 2020/12/6 16:26
* @Version 1.0
*/
public class TcpTalkServer {
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in);
//创建服务器对象
ServerSocket server = new ServerSocket(9999);
System.out.println("等待服务器响应");
//监听
Socket listen = server.accept();
System.out.println("服务器连接成功!");
//死循环
while (true){
//创建数据报
InputStream in = listen.getInputStream();
byte[] bytes = new byte[1024];
int len = in.read(bytes);
//接收消息
String recv = new String(bytes,0,len);
//打印消息
System.out.println("黑土: " + recv);
//发送消息
OutputStream out = listen.getOutputStream();
System.out.print("白云: ");
String send = sc.next();
out.write(send.getBytes());
//关闭
/* out.close();
in.close();
ss.close();*/
}
}
}
客户端代码
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
import java.util.Scanner;
/**
* @ClassName TalkClient
* @Description 实现客户端与服务器端的 聊天功能,对发信息
* @Author 码农天宇
* @Date 2020/12/6 16:26
* @Version 1.0
*/
public class TcpTalkClient {
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in);
//创建客户端对象
Socket client = new Socket("127.0.0.1",9999);
//死循环
while (true){
//发送数据
OutputStream out = client.getOutputStream();
System.out.print("黑土: ");
String send = sc.next();
//out.write("Hello Server!!".getBytes());
out.write(send.getBytes());
//创建数据报
InputStream in = client.getInputStream();
byte[] bytes = new byte[1024];
int len = in.read(bytes);
//接受消息
String recv = new String(bytes,0,len);
//打印数据/消息
System.out.println("白云: " + recv);
//关闭
/* in.close();
out.close();
client.close();*/
}
}
}
//server
等待服务器响应
服务器连接成功!
黑土: 你好,白云
白云: 啊,是你啊,黑土
黑土: 好久不见,甚是想念
白云: 可别 肉麻肉麻的
//client
黑土: 你好,白云
白云: 啊,是你啊,黑土
黑土: 好久不见,甚是想念
白云: 可别
黑土: