使用Python的socket模块搭建tcp服务器与客户端

# __author__ = 'ZSnail'

# socket就是一个网络通讯协议
# 服务器端

import socket

server = socket.socket()

server.bind(('127.0.1.1', 6969))  # 绑定要监听的端口

server.listen()  # 监听

print('开始等??')  # 在这里会形成阻塞,一直等到有客户连接

# conn就是客户端连过来而在服务器内生成的一个连接实例

conn, address = server.accept()  # 等电话打进来
while True:
    print('电话来了')
    data = conn.recv(1024)  # 官方要求最好不要高于8192 - 8k

    print('receive:', data)

    conn.send(data.upper())

server.close()

以上是服务端代码.

有可能不太好理解conn, address的意思, 可以理解为移动客服人员, 整个是一个服务体系, 但是当移动客户打进电话时, 需要真正的有人来回复打电话的客户

 1 # __author__ = 'ZSnail'
 2 # 客户端
 3 import socket
 4 
 5 client = socket.socket()  # 声明socket类型和socket链接
 6 
 7 client.connect(('127.0.1.1', 6969))   # 连接端口
 8 
 9 while True:    # 在这里写死循环 可以让客户端一直保持连接状态而不断开
10     msg = input('>>:').strip()
11 
12     client.send(msg.encode('utf-8'))  # python3内只能发送比特类型
13 
14     data = client.recv(1024)   # 收多少东西 单位是字节
15 
16     print('receive:', data)
17 
18 client.close()

以上是客户端代码, 可以尝试插入几条print语句来查看阻塞问题

posted @ 2018-04-06 18:07  JedenZhan  阅读(440)  评论(0编辑  收藏  举报