SOCKET学习总结
1 #-----服务器接收客户端链接1 2 # 导入库 3 import socket 4 #建立一个socket 5 conn=socket.socket() 6 #绑定服务器端自己的IP 7 conn.bind(('127.0.0.1',8000)) 8 #准备好了,开始监听,最多同时监听5个连接, 9 conn.listen(5) 10 #等待连接的到来 11 conn.accept()#阻塞 12 conn.close() 13 print("测试") 14 15 #------client1---------------- 16 import socket 17 cs=socket.socket() 18 #尝试链接服务器 19 cs.connect(("127.0.0.1",8000)) 20 #发送数据,注意必须是字节型,不能是字符串 21 cs.sendall(bytes("你好",encoding="utf-8")) 22 #发送完毕,关闭链接 23 cs.close() 24 25 #-----增加互动,服务器和客户端互相发消息2------------------------------ 26 import socket 27 #建立一个socket 28 conn=socket.socket() 29 #绑定服务器端自己的IP 30 conn.bind(('127.0.0.1',8002)) 31 #准备好了,开始监听, 32 conn.listen(5) 33 while True: 34 # 等待连接的到来 35 tcpsock,addr=conn.accept() 36 while True: 37 #接收客户端发来的数据 38 data=tcpsock.recv(1024) 39 if str(data,encoding="utf-8")=="q": 40 break 41 #由于接收的是字节型数据需要转换为字符串显示 42 print(str(data,encoding="utf-8"),addr) 43 #收到之后,服务器对字符串加上“我已收到”并发给客户端 44 tcpsock.sendall(data+bytes("我已经收到",encoding="utf-8")) 45 print("退出成功") 46 tcpsock.close() 47 conn.close() 48 49 #------------互动客户端实例代码2 50 #利用退出功能 引导只要退出一个客户端在运行另一个客户端才可以正常和服务器通讯 51 import socket 52 cs=socket.socket() 53 cs.connect(("127.0.0.1",8002)) 54 while True: 55 #输入人名,如果输入的是字母q退出 56 data=input("请输入人名\n") 57 cs.sendall(bytes(data, encoding="utf-8")) 58 data1 = cs.recv(1024) 59 print(str(data1,encoding="utf-8")) 60 cs.close() 61 #-------------UDP服务器端-----------------------3 62 import socket 63 #设置链接类型为sock_dgrm类型 64 conn=socket.socket(socket.AF_INET,socket.SOCK_DGRAM) 65 conn.bind(('127.0.0.1',8002)) 66 #接收客户端发过来的数据和地址 67 data,addr=conn.recvfrom(1024) 68 print(str(data),str(addr)) 69 conn.close() 70 #-------------UDP客户端端-----------------------3 71 import socket 72 cs=socket.socket(socket.AF_INET,socket.SOCK_DGRAM) 73 addr=('127.0.0.1',8002) 74 #给UDP服务器发数据 75 cs.sendto(bytes("hello",encoding="utf-8"),addr) 76 cs.close()