知识点
发送数据
设计思路:
代码展示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20import socket
def send_message():
# 创建监听的套接字
tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 链接服务器
server_addr = ('192.168.85.129', 8080)
tcp_socket.connect(server_addr)
# 发送信息给服务器
message = 'Test message'
tcp_socket.send(message.encode('utf-8'))
# 接受对方发送过来的数据,最大接受1024个字节
recv_message = tcp_socket.recv(1024)
print(recv_message.decode('utf-8'))
# 关闭套接字
tcp_socket.close()
if __name__ == '__main__':
send_message()
接受数据
设计思路:
参考代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31import socket
def server():
# 创建套接字
server_tcp_client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定IP和端口
server_tcp_client.bind(('', 8080))
# 激活套接字的监听服务
server_tcp_client.listen(128)
while True:
# 监听tcp客户端的链接,监听到的时候,此时会返回一个新的套接字对象、客户端IP和端口
new_tcp_socket, client_addr = server_tcp_client.accept()
print(str(new_tcp_socket) + '\n' + str(client_addr))
# 接受客户端发送来的请求,接受到的是发送的文本信息
while True:
# 此处Recv
message = new_tcp_socket.recv(1024)
if message:
print(message.decode('utf-8'))
else:
break
# 关闭新的客户端的服务
new_tcp_socket.close()
# 关闭监听的套接字服务
server_tcp_client.close()
if __name__ == '__main__':
server()
作业
- 编写TCP下载文件客户端
- 编写TCP文件下载服务端