package tcp;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
public class TcpServer {
// 先启动服务器端程序
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = new ServerSocket(8080);
System.out.println("tcp 服务端开启....");
while (1 == 1) {
Socket socket = serverSocket.accept();// 阻塞等待消息
System.out.println("已经获取连接"+socket);
socket.setSoTimeout(10*1000);//readLine这里等待10s,如果用户还没有输入就抛出异常java.net.SocketTimeoutException
InputStream inputStream = socket.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
System.out.println("接收客户端信息...");
while (true) {//长连接不断处理
System.out.println("等待用户输入");
String readLine = bufferedReader.readLine();
System.out.println("接收报文:" + readLine);
}
}
}
}
package tcp;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.Socket;
public class TcpClient {
public static void main(String[] args) {
try {
Socket s = new Socket("127.0.0.1", 8080);
// InputStream is = s.getInputStream();
OutputStream os = s.getOutputStream();
DataOutputStream os_d = new DataOutputStream(os);
for (;;) {// 保持长连接不断发送
InputStreamReader input = new InputStreamReader(System.in);
BufferedReader read = new BufferedReader(input);
String content = read.readLine();
System.out.println("开始发送报文," + content);
os_d.writeBytes(content + System.getProperty("line.separator"));
}
} catch (Exception e) {
e.printStackTrace();
}
}
}