socket 基础客户端通讯

avatar

最基础版

  • 服务端
import socket

#  参数1  套接字类型INET     参数2  数据流类型 TCP协议
phone = socket.socket(socket.AF_INET,socket.SOCK_STREAM)  # 获取对象
#  为了防止端口被占用,可以使用如下方法,回收端口
sok.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

phone.bind(('127.0.0.1', 8080))  # 绑定ip和端口 ,元祖形式的所以有两组()  短裤0-65535  0-1024 给系统用

phone.listen(5)  # 设置在线监听数量,同时最多和五个客户端通讯 

#  conn 为三次握手建立链家后得得套接字对象
conn, client_add = phone.accept()  # 程序会挂在这等待客户进入,获取到元祖形式的套接字  和 ip信息

while True:
    # 收发消息   
    try:
        data = conn.recv(1024)  # 最大的为1024个字节,单位是bytes
        if not data:  # linux 系统如果 客服端断开会收到空信息
            break
        print('客户端数据', data)
        conn.send('我已经收到信息辣')  # 给客户回信息过去
    except ConnectionResetError:  # windows 系统操作客服端断开会收到空信息
        print('客户端断开连接了')
        break
conn.close()  # 关闭这个通讯线路
phone.close()  # 关闭整个通信对象

  • 客户
import socket

phone = socket.socket(socket.AF_INET,socket.SOCK_STREAM)  # 创建对象
phone.connect(('127.0.0.1', 8080))  # 建立链接

phone.send('hello'.encode('utf-8'))  # 必须要转数据类型
data = phone.recv(1024)  # 获取数据
print(data)
phone.close()  # 关闭通讯

猜你喜欢

转载自blog.csdn.net/weixin_42329277/article/details/80553661