什么是套接字

  • 使用端口(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()

运行结果: