如何建立socket连接

时间:2016.03.23 发布人:tb7164499

如何建立socket连接

已解决问题

谷歌tb7164499用户在2016.03.23提交了关于“上海交通大学如何建立socket连接”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2024-11-27T08:08:15。希望大家能够帮助她。

详细问题描述及疑问:期待您的答案,没有什么华丽的语言,但是我对你的感谢不会减少 !

希望以下的回答,能够帮助你。

第1个回答

用户名:8y4q0i5h  

socket建立连接的过程如下:

建立套接字

socket()打开一个网络通讯端口,如果成功的话,就像open()一样返回一个文件描述符,应用程序可以像读写文件一样用read/write在网络上收发**,如果socket()调用出错则返回-1。

在INETBSD套接字上绑定(bind)地址

问答了**传入的Internet连接请求,每个服务器都需要建立一个INETBSD套接字,并且将自己的地址绑定到该套接字。绑定操作主要在INET套接字层中进行,还需要底层TCP层和IP层的某些支持。将地址绑定到某个套接字上之程项后,该套接字就不能用来进行任何其他的通讯。

在IN衣前督罗示持海菜升停轻ETBSD套接字上建立连接(connect)

创建一个套接字之后,该套接字不仅可以用于**入站的连接请求,也可史处以用于建立出站的连接请求。不论怎样都涉及到一个重要的过程:建立两个应用程序之间的虚拟电路。

**(liste仍独功并川n)INETBSD套接字

典型的服务器程序可以存因做江风专单球被同时服务于多个客户端,当有客户端发起连接时,服务器调用的accept()返回并接受这个连接前哪地也笔张,如果有大量的客户端发起连接而服务器来不及处理,尚未accept的客户端就处于连接等待状态,listen执出宣保甲质房候松()声明sockfd处于**状态,并且最多允许有backlog个客户端处于连接待状态,如果接收到更多的连接请求就忽略。listen()成功返回0,失败返回-1。

接受连接请求(accept)

其过程如下:接受操作首先传递到支持协议层,即INET中,以便接受任何传入的连接请求。相反,接受操作进一步传递到实际的节换协议,例如TCP上。接受操作可以是阻塞的,也可以是非倍间阻塞的。接受操作为非阻塞的情况下,如果没有可接受的传入连接,则接受操作将失败,而新建立的socket**结构被抛弃。接受操作为阻塞的情况下,执行阻塞操作的网络应用程序将添加到等待队列中,并保持挂起直到接收到一个TCP连接请求为至。