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'
原文地址:https://www.cnblogs.com/xudachen/p/8723353.html