TCP通信

Posted zhai1997

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TCP通信相关的知识,希望对你有一定的参考价值。

TCP通信分为客户端和服务器端,实现通信必须由客户端连接服务端。

Socket类(客户端):

技术图片

技术图片

 

可以指定IP地址和端口号,可以根据IP和端口号运行服务端程序,只是IP地址的形式不同。

ServerSocket类(服务器端):

技术图片

  (1)没有绑定端口号,需要调用bind方法。

(2)可以绑定端口号,默认最大连接数量为50。

(3)可以绑定端口号,指定最大连接数量。

(4)可以绑定端口号,指定最大连接数量、IP地址。适用于计算机上有多块网卡和多个 IP。

客户端,可以一直发送数据:

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;

public class Client 
    public static void main(String[] args) throws UnknownHostException,
            IOException 
        Socket s = new Socket(InetAddress.getByName("DESKTOP-R14D2UH"), 7999);// 通过IP和端口号连接服务器
        OutputStream out = s.getOutputStream();

        out.write("客户端已启动".getBytes());
        InputStream in = s.getInputStream();
        byte[] buffer = new byte[1024];
        int length = in.read(buffer);
        System.out.println(new String(buffer, 0, length));

        while (true) 
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入数据到服务器:");
            String str = sc.next();
            out.write(str.getBytes());

        

    

服务器,一直接收客户端发送的数据:

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class Server 
    public static void main(String[] args) throws IOException 
        ServerSocket ss = new ServerSocket(7999);
        Socket s = ss.accept();// 在服务端的指定端口监听客户端发来的连接请求,并与之连接
        OutputStream out = s.getOutputStream();
        out.write("你已经连接上了服务器".getBytes());// 字节输出
        while(true)
        InputStream in = s.getInputStream();
        byte[] buffer = new byte[1024];
        int length = in.read(buffer);
        System.out.println(new String(buffer, 0, length));
    

    

 

以上是关于TCP通信的主要内容,如果未能解决你的问题,请参考以下文章

TCP通信

TCP通信的客户端代码实现,TCP通信的服务端代码实现

Java 通过实现简单的TCP通信程序来理解TCP通信

TCP通信是2路通信吗?

TCP通信

TCP通信中的“沾包”现象