python3.x Day5 socket编程
socket编程:
socket 是大多应用层的底层的封装,实际封装的就是 发送,接收,但其实很复杂,在传输层协议之上(TCP/IP,UDP)
既然是网络通讯,一般按照服务端,客户端来处理:
服务端:
import socket server=socket.socket() #创建一个socket对象 server.bind(("0.0.0.0",9999)) #创建服务端绑定的IP和端口,用于监听 server.listen(5) #开始监听 conn,addr=server.accept() #等待访问,如果有客户端访问,conn就是访问过来在服务端生成的对应链接对象,addr是客户端地址 print(type(addr),addr) data=conn.recv(1024) #data存放客户端发过来的具体东西 m=data.upper() #对data进行加工,返回给客户端,看出让客户端看出有变化。 conn.send(m) server.close()
客户端:
import socket client=socket.socket() #创建一个socket对象,创建对象时,可以创建的类型有4种。当前采用默认值 # family=AF_INET(ipv4), type=SOCK_STREAM(TCP/IP) #family是地址簇, client.connect(("localhost",9999)) #创建链接 print(client.getsockname()) out_data=b"hello world" #定义要传输的东西,py3 必须是byte类型 #test in_data=client.recv(1024) #从服务器端接收 print(in_data) #打印结果 #test client.send(out_data) #向服务器端发送 in_data=client.recv(1024) #从服务器端接收 print(in_data) #打印结果 client.send(out_data) #向服务器端发送 in_data=client.recv(1024) #从服务器端接收 print(in_data) #打印结果 client.send(out_data) #向服务器端发送 in_data=client.recv(1024) #从服务器端接收 print(in_data) #打印结果