socket入门

结构图如下

一个套接字就是socket模块中的socket类的一个实例。实例化时需要3个参数

地址族:默认(socket.AF_INET)

流:默认(socket.SOCK_STREAM)  或数据报(socket.SOCK_DGRAM)套接字

使用的协议:默认(0)。

对于一个普通的套接字,不需要提供任何参数。

服务器端 使用bind 方法,再调用listen 方法监听某个特定的地址。客户端套接字使用connect方法连接到服务器,在connect方法中使用的地址与服务器在bind方法中的地址相同。

(服务器可以使用函数socket.gethostname得到当前主机名)。这种情况下,一个地址就是一个格式为(host,port)的元祖。listen方法只有一个参数,即服务器未处理的连接长度(即容许排队等待的连接数,这些连接在禁用之前等待)。

服务器端套接字开始监听后,他就可以接收客户端的连接。这个步骤使用accept方法来完成。这个方法会阻塞(等待)知道客户端连接,然后该方法就会返回一个格式为(client,address)的元组,client是一个客户端的套接字,address是一个前面解释过的地址。服务器在处理完与该客户端的连接后,再次调用accept方法开始等待下一个连接。这个过程通常是在一个无线循环中实现的(while True)

 套接字有两个方法:send 和 recv(用于接收),用于传输数据。可以使用字符串参数调用send以发送数据,用一个所需的(最大)字节数做参数调用recv来接收数据。默认(1024<x<8*1024)

哈哈

公众号请关注:侠之大者
原文地址:https://www.cnblogs.com/kamil/p/5250947.html