在Java中实现TCP协议编程_冯东昆的博客-CSDN博客_java实现tcp协议
package io;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class TcpServer{
public static void main(String[] args) {
System.out.println("监听请求中...");
BufferedWriter brout = null;
BufferedReader brin = null;
try (
// 1.建立服务器socket
ServerSocket ss = new ServerSocket(9009);
// 2.调用accept()
Socket s = ss.accept();){
System.out.println(s.getInetAddress().getHostAddress()+ "...connection");
// 读取客户的信息的输入流
InputStream in = s.getInputStream();
brin = new BufferedReader(new InputStreamReader(in));
// 向客户端发送信息输出流,服务端向客户端返回信息OutputStreamWriter()
brout = new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
String line = null;
while ((line=brin.readLine()) != null) {
System.out.println("client:" + line);
brout.write(line.toUpperCase());//服务器端收到信息后,将信息转为大写返回给客户端toUpperCase()
brout.newLine();
brout.flush();
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if(brout!=null) {
try {
brout.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(brin!=null) {
try {
brin.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
package io;
import java.net.Socket;
import java.io.*;
public class TcpClient{
public static void main(String[] args) {
try (
// 1.建立tcp客户端socket,要确定要连接的服务器ip,port
Socket s = new Socket("127.0.0.1", 9009);
// 2.通过建立的socket,获取输出流对象
// 数据输出给服务器端
OutputStream out = s.getOutputStream();
BufferedWriter bwout = new BufferedWriter(new OutputStreamWriter(out));
// 获取服务器端返回的数据
// 读取服务器端发过来的信息InputStreamReader()
BufferedReader brin = new BufferedReader(new InputStreamReader(s.getInputStream()));
// 获取键盘录入
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));){
String line = null;
while ((line = br.readLine()) != null) {
if (line.equals("over")) {
break;
}
bwout.write(line);
bwout.newLine();
bwout.flush();
String str = brin.readLine();
System.out.println("server:" + str);
}
} catch(IOException e) {
e.printStackTrace();
}
}
}