一、服务端
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'