python socket 通信

服务端(必须先打开)

import socket

def server():
    #默认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型,则需要编码
        try:
            conn.send(msg.encode())
        except:
            conn.close()
            sk.close()
            server()
        # 循环接收和发送消息
        while True:
            #接收客户端消息
            try:
                data = conn.recv(1024)
            except:
                conn.close()
                sk.close()
                server()
            print("接受到的数据:",data.decode())
            #接收到退出指令
            if data == b'exit':
                break
            #处理客户端信息 本实例直接将接收到的消息重新发回去
            # conn.send(data)
            msg_input = input("请输入发送的消息:")
            try:
                conn.send(msg_input.encode())
            except:
                conn.close()
                sk.close()
                server()
if __name__ == '__main__':
    server()

客户端(必须后打开)

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
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏华东的博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值