Python3学习之路~8.3 socket 服务端与客户端

通过8.2的实例1-6,我们可以总结出来,socket的服务端和客户端的一般建立步骤:

服务端

步骤:1创建实例,2绑定,3监听,4阻塞,5发送&接收数据,6关闭。

#Author:Zheng Na

# 服务端

import socket

server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)  # 创建socket实例

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

server.listen()  # 监听


while True:  # 保证一个客户端断开后,服务端等待其他客户端连接,否则服务端随着客户端一同断开(linux系统执行成功,Pycharm中随着客户端断开而断开?)
    print("等待新的连接")
    conn, addr = server.accept()  # 阻塞,等待信息传送
    print("new conn: ", addr)

    while True:  # 保证客户端可向服务端多次发送数据
        data = conn.recv(1024)  # 接收数据
        if not data:  # 防止服务端因客户端关闭而进入死循环
            print("client is lost...")
            break
        print("recv from client: ", data)

        conn.send(data.upper())  # 发送数据

server.close()  # 关闭

客户端

步骤:1创建实例,2连接,3发送&接收数据,4关闭。

#Author:Zheng Na

# 客户端

import socket

client = socket.socket()  # 创建socket实例

client.connect(('localhost', 6969))  # 连接

while True:
    msg = input(">>: ").strip()
    if len(msg) == 0: continue

    client.send(msg.encode("UTF-8"))  # 发送数据

    data = client.recv(1024)  # 接收数据
    print("recv from server: ", data)

client.close()  # 关闭

总结

posted @ 2018-12-06 10:34  zhengna  阅读(224)  评论(0编辑  收藏  举报