欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python socket 通信

程序员文章站 2022-06-29 23:43:56
...

客户端

import socket

#默认tcp方式传输
sk=socket.socket()
#绑定IP与端口
ip_port=('127.0.0.1',8888)
#绑定监听
sk.bind(ip_port)
#最大连接数
sk.listen(5)
#不断循环 接受数据
while True:
    #提示信息
    print("正在等待接收数据。。。。")
    #接受数据  连接对象与客户端地址
    conn, address = sk.accept()
    #定义信息
    msg = "连接成功"
    #返回信息
    #注意 python3.x以上,网络数据的发送接收都是byte类型
    #如果发送的数据是str型,则需要编码
    conn.send(msg.encode())
    #不断接收客户端发来的消息
    while True:
        #接收客户端消息
        data = conn.recv(1024)
        print("接受到的数据:",data.decode())
        #接收到退出指令
        if data == b'exit':
            break
        #处理客户端信息 本实例直接将接收到的消息重新发回去
        # conn.send(data)
        msg_input = input("请输入发送的消息:")
        conn.send(msg_input.encode())
    #主动关闭连接
    conn.close()

服务端

import socket

#服务端为tcp方式,客户端也采用tcp方式  默认参数即为tcp
client = socket.socket()
#访问的服务器的ip和端口
ip_port=('127.0.0.1',8888)
#连接主机
client.connect(ip_port)
#定义发送消息循环
while True:
    # 接受主机信息   每次接收缓冲区1024个字节
    data = client.recv(1024)
    # 打印接受的数据
    print("接受的数据:",data.decode())
    msg_input = input("请输入发送的消息:")
    client.send(msg_input.encode())
    if msg_input == 'exit':
        break