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通信的主要内容,如果未能解决你的问题,请参考以下文章