关于网络编程中Socket的初步总结

1,要实现通信必须先创建套接字

2,上一步骤中创建的套接字只用于listen()和accept(),不用于收发数据【以tcp为例来说】

[https://blog.csdn.net/David_xtd/article/details/7087843?utm_source=blogxgwz1]别人的详细见解

3,收发数据的套接字是accept()产生的,和不同客户端通产生的套接字也就不一样。
所以服务器中的套接字数量是客户端的数量+1,这个1 就是socket(AF_INET, SOCK_STREAM).

4,accept()返回非负数表示成功,-1就是失败

5,如果已经有客户端连接到服务器端,不再需要监听和接受更多的客户端连接的时候,可以关闭由socket()返回的套接字,而不会影响与客户端之间的通信。当某个客户端断开连接、或者是与某个客户端的通信完成之后,服务器端需要关闭用于与该客户端通信的套接字。

6,收发数据一定要记得encode decode

问题:
accept()具体返回的是什么东西??
代码:

tcpClientSocket, addr = tcpServerSocket.accept()

同理 recv 和recvfrom 返回的又具体是什么内容?

data = tcpCliSock.recv(BUFSIZ).decode()
data, addr = udpSerSock.recvfrom(BUFSIZ)

recv的解析【来自他人】:
https://blog.csdn.net/hhhlizhao/article/details/73912578

addr是什么东西??
[https://blog.csdn.net/David_xtd/article/details/7087843?utm_source=blogxgwz1]

猜你喜欢

转载自blog.csdn.net/qq_41992088/article/details/83544683
今日推荐