Python--網絡編程-----socket編程示例--打電話


一、服務端

 1 import socket
 2 
 3 
 4 # 1、買手機
 5 phone = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
 6 # print(phone)
 7 
 8 # 2、綁定手機卡
 9 phone.bind(('127.0.0.1', 8080)) # 0-65535:0-1024給操作系統使用
10 
11 # 3、開機
12 phone.listen(5)
13 
14 # 4、等電話連接
15 print('starting.....')
16 res = phone.accept()
17 print('=======>')
18 print(res)

運行服務端,會卡在res = phone.accept()等待連接

二、客戶端

1 import socket
2 
3 
4 # 1、買手機
5 phone = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
6 # print(phone)
7 
8 # 2、撥號
9 phone.connect(('127.0.0.1', 8080))

先運行服務端,然后運行客戶端,結果為:

1 1 服務端結果為:
2 2 
3 3 starting.....
4 4 =======>
5 5 (<socket.socket fd=480, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('127.0.0.1', 8080), raddr=('127.0.0.1', 61788)>, ('127.0.0.1', 61788))

三、完整的一次通信代碼

 1 服務端:
 2 
 3 # 1、買手機
 4 phone = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
 5 # print(phone)
 6 
 7 # 2、綁定手機卡
 8 phone.bind(('127.0.0.1', 8080)) # 0-65535:0-1024給操作系統使用
 9 
10 # 3、開機
11 phone.listen(5)
12 
13 # 4、等電話連接
14 print('starting.....')
15 conn, client_addr = phone.accept()
16 
17 # 5、收、發信息
18 data = conn.recv(1024)  # 1、單位:bytes 2、1024代表最大接受1024個bytes
19 print('客戶端的數據', data)
20 
21 conn.send(data.upper())
22 
23 # 6、掛電話
24 conn.close()
25 
26 # 7、關機
27 phone.close()
28 
29 客戶端:
30 
31 import socket
32 
33 
34 # 1、買手機
35 phone = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
36 # print(phone)
37 
38 # 2、撥號
39 phone.connect(('127.0.0.1', 8080))
40 
41 # 3、發、收消息
42 phone.send('hello'.encode('utf-8'))
43 data = phone.recv(1024)
44 print(data)
45 
46 # 4、關閉
47 phone.close()

服務端運行結果為:

1 starting.....
2 客戶端的數據 b'hello'

客戶端運行結果為:

1 b'HELLO'

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM