TCP粘包和半包问题及解决
发布日期:2021-05-14 16:39:32 浏览次数:18 分类:精选文章

本文共 7063 字,大约阅读时间需要 23 分钟。

������������������������������������

������������������������������������������������������������������������������������������������������������������������������������������TCP���������������������������������������������������������������������������������������������TCP������������������������������������������������������������������������������������������������������������������������������������

���������������������������������������

TCP���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

![������������������������������](../_img ������������������.png)


������������������������������

������������Java������������������������������������������������������������������

������������������

public class TCPSever {
private static final int port = 9005;
private static final int leng = 1024;
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = new ServerSocket(port);
System.out.println("������������������������");
Socket clientSocket = serverSocket.accept();
System.out.println("���������������������IP���������" + clientSocket.getInetAddress().getHostAddress()
+ "������������" + clientSocket.getPort());
try (BufferedReader reader = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()))) {
while (true) {
String msg = reader.readLine();
if (msg != null) {
System.out.println("������������������" + msg);
}
}
}
}
}

���������������

public class TCPClientError {
private static final String ip = "127.0.0.1";
private static final int port = 9005;
public static void main(String[] args) throws IOException {
Socket socket = new Socket(ip, port);
String msg = "Hi, Java.\n";
try (OutputStream outputStream = socket.getOutputStream()) {
for (int i = 0; i < 10; i++) {
outputStream.write(msg.getBytes(), 0, msg.getBytes().length);
}
}
}
}

������������

���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������


������������������������������

������������������������������������������������������������

  • ���������������������

    ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

  • ������������������������

    ���TCP���������������������������������������������RTP������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

  • ������������������

    ������Java������BufferedReader���BufferedWriter��������������������������������������������������������� \n���������������������������������������������������������������������������������������������������

  • ������������1������������������������

    ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

    ���������������������

    public class Fixed.BufferServer {
    public static void main(String[] args) throws IOException {
    ServerSocket serverSocket = new ServerSocket(9091);
    Socket clientSocket = serverSocket.accept();
    try (InputStream inputStream = clientSocket.getInputStream()) {
    byte[] byteBuffer = new byte[1024];
    int count;
    while ((count = inputStream.read(byteBuffer, 0, 1024)) != -1) {
    String receivedMsg = new String(byteBuffer, 0, count).trim();
    System.out.println("���������������������" + receivedMsg);
    }
    }
    }
    }
    public class Fixed.BufferClient {
    public static void main(String[] args) throws IOException {
    Socket socket = new Socket("127.0.0.1", 9091);
    String msg = "Hi, Java.";
    try (OutputStream outputStream = socket.getOutputStream()) {
    while (0 < 10) {
    byte[] byteMsg = msg.getBytes();
    byte[] byteBuffer = new byte[byteMsg.length + 1023];
    System.arraycopy(byteMsg, 0, byteBuffer, 0, byteMsg.length);
    for (int i = 0; i < 1023; i++) {
    byteBuffer[i] = 0;
    }
    outputStream.write(byteBuffer);
    socket.close();
    }
    }
    }
    }

    ������������3���������������������

    ������������������������������������������������������������������������������������������������

    ���������������������

    public class NewLine.Server {
    public static void main(String[] args) throws IOException {
    ServerSocket serverSocket = new ServerSocket(9005);
    System.out.println("������������������������");
    Socket clientSocket = serverSocket.accept();
    System.out.println(String.format("������������������������IP���������%s������������%d",
    clientSocket.getInetAddress().getHostAddress(), clientSocket.getPort()));
    try (BufferedReader reader = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()))) {
    while (true) {
    String msg = reader.readLine();
    if (msg != null) {
    System.out.println("���������������������" + msg);
    }
    }
    }
    }
    }
    public class NewLine.Client {
    public static void main(String[] args) throws IOException {
    Socket socket = new Socket("127.0.0.1", 9005);
    String msg = "Hi, Java.\n";
    try (OutputStream outputStream = socket.getOutputStream()) {
    for (int i = 0; i < 10; i++) {
    outputStream.write(msg.getBytes());
    }
    }
    }
    }

    ���������������

    • ���������������������������������������������������������������������������������������������������������������������������������������������
    • ������������������������������������������������������������������������������������������������������������������������������
    • ���������������������������������������������������������������������������������������������������������������������������������������������

    ������

    ������������������������������������������������������������������������������������������������������������������������������������������������������������������

    上一篇:树的高度和深度以及结点的高度和深度
    下一篇:实现简易HTTP服务器

    发表评论

    最新留言

    路过按个爪印,很不错,赞一个!
    [***.219.124.196]2025年04月23日 05时06分43秒