Socket套接字
Socket工作原理。服务器端通过bind绑定socket,一直监听端口。 当客户端通过conncet方法连接指定计算机的端口,并使用send()向socket中写入信息。
生成套接字,主要有3个参数:通信的目的IP地址、使用的传输层协议(TCP或UDP)和使用的端口号。Socket原意是“插座”。通过将这3个参数结合起来,与一个“插座”Socket绑定,应用层就可以和传输 层通过套接字接口,区分来自不同应用程序进程或网络连接的通信,实现数据传输的并发服务。
发送是 send方法,接收时accept()方法
JavaAPI实现socket通信。
Receive
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
public class Receiver {
public static void main(String[] args) throws Exception {
Socket socket = null;
ServerSocket serverSocket = new ServerSocket(5000);
socket = serverSocket.accept(); //线程会被阻塞,一直进入等待状态。
// 获取与客户端连接的输入流
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String message = null;
while ((message = in.readLine()) != null) { //从流中读取消息
System.out.println(message);
}
}
}
发送方:
import java.io.PrintWriter;
import java.net.Socket;
import java.util.Scanner;
public class Send {
public static void main(String[] args) throws Exception {
//创建连接 连接远程的 localhost 和5000 端口
Socket socket = new Socket("localhost", 5000);
//两个管道建立连接
PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
Scanner sc = new Scanner(System.in); //输入流
while (true) {
String mess = sc.next();
//通过out.println()讲消息写给远程
out.println(mess);
}
}
}
发送和接收消息
计算机通信的过程
参考文章:
https://blog.csdn.net/luzhensmart/article/details/81838193