socket(TCP)通讯之Python实现

1、Service

address = ('localhost', 9102)

# AF_INET = ipv4;  SOCK_STREAM:TCP
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 监听 IP:port
s.bind(address)
# 最大允许连接数量
s.listen(5)

while True:
    print('----server wait')
    # 阻塞 每当有客户端的请求过来开始执行 
    # 连接处理 (已完成三次握手)并获取资源对象 |
    conn, addr = s.accept()
    # 请求处理 | 读取客户端发送过来的数据 |
    recv_data = conn.recv(1024)
    print(recv_data)
    # 响应处理 | 把客服端发送过来的数据又转发回去 
    conn.sendall(data.encode('utf-8'))

 

2、Client

import socket 

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 连接服务端
s.connect(('127.0.0.1', 9102))

# 请求 | 发送数据到服务端
s.sendall(b'hello')

# 响应 | 接受服务端返回到数据
data = s.recv(1024)

print(data) # hello

# 关闭 socket
s.close()

 

----

在实际使用TCP通讯的时候,由于TCP的机制,存在粘包情况,针对这一问题的处理见

socket(TCP-粘包)通讯之Python实现 

posted @ 2019-04-26 09:54  戒骄戒躁-沉淀积蓄  阅读(273)  评论(0编辑  收藏  举报