初探传输层TCP协议-网络套接字与通信过程
什么是套接字
- 使用端口(Port)来标记不同的网络进程
- 端口(Port)使用16比特位表示(0~ 65535)
常见协议的端口:
因此可以得出以下结论:
- 套接字(Socket)是抽象概念,表示TCP连接的一端
- 通过套接字可以进行数据发送或接收
服务端编程
实践代码:
# -*- encoding=utf-8 -*-
import socket
def server():
# 1. 创建套接字
s = socket.socket()
# 2. 绑定
HOST = '127.0.0.1'
PORT = 6666
s.bind((HOST, PORT))
# 3. 监听
s.listen(5)
# 4. 处理
while True:
c, addr = s.accept()
print('Connect client: ', addr)
msg = c.recv(1024)
print('From client: %s' % msg)
c.send(msg)
pass
if __name__ == '__main__':
server()
运行结果:
客户端编程
实践代码:
# -*- encoding=utf-8 -*-
import socket
def client():
# 1. 创建套接字
s = socket.socket()
# 2. 连接
HOST = '127.0.0.1'
PORT = 6666
s.connect((HOST, PORT))
# 3. 处理信息
s.send(b'Hello World!')
msg = s.recv(1024)
print('From server: %s' % msg)
if __name__ == '__main__':
client()
运行结果: