TCP服务端
/**
* @author zyw
* @version 1.0
*/
public class Tcpserver {
public void tcpserverConnect() {
try {
ServerSocket server = new ServerSocket(8090);
//客户端连接
while (true) {
Socket client = server.accept(); //等待客户端的连接,如果没有获取连接 ,在此步一直等待
new Thread(new ServerThread(client)).start(); //为每个客户端连接开启一个线程
}
} catch (IOException e) {
e.printstacktrace();
}
}
}
/**
* @author zyw
* @date 2022-08-22 11:10
*/
@Slf4j
public class ServerThread implements Runnable {
private Socket client;
public ServerThread(Socket client) {
this.client = client;
}
@SneakyThrows
@Override
public void run() {
try {
BufferedReader br = new BufferedReader(new InputStreamReader(client.getInputStream()));
//获取socket的输出流对象。
OutputStreamWriter socketout = new OutputStreamWriter(client.getoutputStream());
//读取客户端发送来的消息
String mess = br.readLine();
System.out.println(mess);
log.info("客户端:" + client.getInetAddress().getLocalHost() + "已连接到服务器");
//建立客户端信息输出流(客户端向服务端发送信息) 一问一答
socketout.write("服务端发送给客户端\r\n");
socketout.flush();
} catch (UnkNownHostException e) {
e.printstacktrace();
}
}
}
TCP客户端
/**
* @author zyw
* @version 1.0
*/
public class TCPClient {
@SneakyThrows
public void tcpClientConnect(){
//建立tcp的客户端服务
Socket socket = null;
try {
socket = new Socket("127.0.0.1",8090);
//写入数据流
OutputStreamWriter socketout = new OutputStreamWriter(socket.getoutputStream());
BufferedReader socketReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
socketout.write("客户端发消息给服务端\r\n");
//刷新
socketout.flush();
String line = null;
//不断的读取键盘录入的数据,然后把数据写出
//读取服务端回送的数据
line = socketReader.readLine();
System.out.println("服务端回送的数据是:"+line);
} catch (IOException e) {
e.printstacktrace();
}finally {
//关闭资源
socket.close();
}
}
}
原文地址:https://www.jb51.cc/wenti/3284106.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。