1. 程式人生 > >SOCKET學習總結

SOCKET學習總結

pri 數據 顯示 \n ram udp客戶端 學習 不能 地址

 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學習總結