SOCKET学习总结

Posted lijiangsuo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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()

 

以上是关于SOCKET学习总结的主要内容,如果未能解决你的问题,请参考以下文章

线程学习知识点总结

总结学习Socket编写的聊天室小程序

SOCKET学习总结

Socket通信机制(学习总结)

python 学习总结3

Socket通信机制(学习总结)