socket网络编程

服务端

import socket
# 创建一个socket对象
socket_server = socket.socket()
# 绑定socket_server到指定IP和地址
socket_server.bind(("localhost", 8888))    # 这里要传入元组
# 服务端开始监听,backlog为int整数,表示允许的连接数量。超出会等待,可以不填,不填会自动设置一个合理值
socket_server.listen(1)
# 接受客户端的链接,获得连接对象
conn, address = socket_server.accept()  # accept方法是阻塞的方法,如果没有连接,会一直停在这一行不会执行后面的代码。accept返回的是一个二元元组,可以使用上述形式,用两个变量接受二元元组的2个元素
print(f"接收到客户端的连接,连接来自{address}")
while True:
    data: str = conn.recv(1024).decode("UTF-8")
    print(f"客户端发来的消息是:{data}")
    msg = input("请输入你要和客户端回复的消息:")
    if msg == "exit":
        break
    conn.send(msg.encode("UTF-8"))


conn.close()
socket_server.close()

客户端

import socket
# 创建socket对象
socket_client=socket.socket()
#连接到服务器
socket_client.connect(("localhost",8888))
while True:
    #发送消息
    msg=input("请输入要给服务端发送的消息:")
    socket_client.send(msg.encode("UTF-8"))
    #接受返回消息
    recv_data=socket_client.recv(1024)    #1024是缓冲区大小,一般为1024即可,同样recv方法是阻塞的
    print(f"服务端回复的消息是:{recv_data.decode('UTF-8')}")

#关闭连接
socket_client.close()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值