socket补充
socket
第一步,建立socket对象:这里与客户端一样,依然是:
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
第二步,设置和得到socket选项
python定义了setsockopt()和getsockopt(),一个是设置选项,一个是得到设置。这里主要使用setsockopt(),具体结构如下:
setsockopt(level,optname,value)
level定义了哪个选项将被使用。通常情况下是SOL_SOCKET,意思是正在使用的socket选项。它还可以通过设置一个特殊协议号码来设置协议选项,然而对于一个给定的操作系统,大多数协议选项都是明确的,所以为了简便,它们很少用于为移动设备设计的应用程序。
optname参数提供使用的特殊选项。关于可用选项的设置,会因为操作系统的不同而有少许不同。如果level选定了SOL_SOCKET,那么一些常用的选项见下表:
本节在学习时,用到了SO_REUSEADDR选项,具体写法是:
S.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1) 这里value设置为1,表示将SO_REUSEADDR标记为TRUE,操作系统会在服务器socket被关闭或服务器进程终止后马上释放该服务器的端口,否则操作系统会保留几分钟该端口。
phone = socket.socket() 1 服务端和客户端的公共用途的嵌套字函数 2 phone.recv() #接受TCP数据 3 phone.send() #发送TCP数据 4 phone.recvfrom() #接受UDP数据 5 phone.sendto() #发送UDP数据 6 phone.getpeername() #接收到当前套接字远端的地址 7 phone.getsockname() #返回指定套接字的参数 8 phone.setsockopt() #设置指定套接字的参数 9 phone.close() #关闭套接字 1 面向锁的套接字方法 2 phone.setblocking() #设置套接字的阻塞与非阻塞模式 3 phone.settimeout() #设置阻塞套接字操作的超时时间 4 phone.gettimeout() #得到阻塞套接字操作的超时时间1 面向锁的套接字方法 2 phone.setblocking() #设置套接字的阻塞与非阻塞模式 3 phone.settimeout() #设置阻塞套接字操作的超时时间 4 phone.gettimeout() #得到阻塞套接字操作的超时时间 1 面向文件的套接字函数 2 phone.fileno() # 套接字的文件描述符 3 phone.makefile() #创建一个与该套接字相关的文件
幻想毫无价值,计划渺如尘埃,目标不可能达到。这一切的一切毫无意义——除非我们付诸行动。