昨天学了socket函数,发送信息,接受信息,觉得还挺有意思的,就赶快来跟大家来分享一下啦。
首先要创建两个py文件,一个作为服务端,一个作为客户端。
服务端py文件
from scoket import * #从scoket模块中导入所有的方法
s=scoket(AF_INET,SOCK_STREAM,0)#创建服务器套接字
s.bind(('',8080))#套接字与地址绑定,ip和端口号
s.listen(10)#监听连接十秒
while True:#服务器无限循环
csock,caddr=s.accept()#接受客户端连接
print(caddr,'连接进来了')
data=csock.recv(1024)#对话接受
print(data)
创建服务器套接字中有几个参数,给大家解释一下。
s=socket(AF_INET,SOCK_STREAM,0)
socket(socket_family, socket_type, protocol=0)
第一个参数是:socket_family 套接家族。UNIX套接字的家族名字叫做“AF_UNIX”(又名AF_LOCAL)。包括python在内的大多数受欢迎的平台都使用属于地址家族及其缩写AF;其他比较旧的体系可能会将地址家族表示成域或协议家族,并使用其缩写PF而非AF。类似的,AF_LOCAL将代替AF_UNIX。 然而,考虑到向后兼容性。很多系统都同时使用两者,只是对同一个常数使用不同的别名。python本身仍然在使用AF_UNIX。sock_family是AF_UNIX或者AF_INET
第二个参数是:socket_type套接字类型。
为了创建UDP套接字,必须使用SOCK_DGRAM作为套接字类型(名字来源于datagrame<数据报>),因为这些套接字也使用因特网协议来寻找网络中的主机。所以这个系统也有一个更加普通的名字,即这两种协议(UDP和IP的组合名字,或UDP/IP)
socket_type是SOCK_STREAM或者SOCK_DGRAM
第三个参数是:protocol protocol 通常省略,默认为 0
客户端py文件
from socket import *
s=socket(AF_INET,SOCK_STREAM,0)
s.connect(('127.0.0.1',8080))
s.send(b'hello')
s.close()
注意:运行的时候一定要先运行服务器端的文件再运行客户端的py文件
刚开始的时候运行
服务端文件
客户端文件
运行完之后再打开服务端的界面
连接进来了。(/≧▽≦)/(/≧▽≦)/。一定更要注意运行顺序哦!