JavaWeb—网络编程套接字

1. 端口号

端口号(port)是传输层协议的内容:

  1. 端口号是一个32位的整数;
  2. 端口号用来标识一个进程, 告诉操作系统, 当前的这个数据要交给哪一个进程来处理;
  3. IP地址 + 端口号能够标识网络上的某一台主机的某一个进程;
  4. 一个端口号只能被一个进程占用

注意:进程和端口号的关系

一个进程可以绑定多个端口号; 但是一个端口号不能被多个进程绑定

2. TCP/UDP

TCP(Transmission Control Protocol 传输控制协议)
UDP(User Datagram Protocol 用户数据报协议)

相同 不同
TCP 传输层协议 可靠的、有连接、面向字节流
UDP 传输层协议 不可靠的、无连接、面向数据报

2. 注意

  1. TCP面向流的:不保证是原封不动的接收到的
    eg:服务器发送:“Hello word”
    客户端吧收到的可能是 :“H” “ello” " " “word”

  2. UDP是面向报文的:原封不动的接收
    eg:发送端发送的是"Hello word"
    接受端收到的一定是"Hello word"

  3. TCP面向连接 ——有connect连接

  4. UDP无连接—— 没有调用connect

  5. TCP可靠的
    eg:发送了对方一定能收到;如果收不到,我也知道出问题了

  6. UDP不可靠的
    eg:

  7. severSocket().accept() //已经获取了一条链接

3. Socket

3.1 Socket常见API

DatagramSocket类:

方法签名 解释
DatagramSocket(int port,InetAddress laddr) 创建一个数据报套接字,绑定到指定的本地地址
DatagramSocket(SocketAddress bindaddr) 创建一个数据报套接字,绑定到指定的本地套接字地址
void bind(SocketAddress addr) 将此DatagramSocket绑定到特定的地址和端口
void connect(InetAddress address,int port) 将套接字连接到此套接字的远程地址
void receive(DatagramPacket p) 从此套接字接收数据报包
void close() 关闭此数据报套接字
void send(DatagramPacket p) 从此套接字发送数据报包

4.

4.1如何写UDP服务器?

1创建一个 UDP socket

DatagramSocket udpServerSocket=new DatagramSocket(8090);

2 循环
2.1 等待对方发送 UDP 报文过来

udpServerSocket.receive(receivePacket);

2.2 回复对方一个 UDP 报文

udpServerSocket.send(sendPacket);

4.2

4.3如何写一个TCP服务器?

4.4线程处理流程

1 把输入流和输出流都转成合适的

正式员工数量
临时工+正式员工数量
空闲时间
队列

发布了70 篇原创文章 · 获赞 3 · 访问量 1226

猜你喜欢

转载自blog.csdn.net/qq_43361209/article/details/103433522