python实现socket客户端与服务端本地文件持续通信

服务端代码

import socket
import os

# 创建本地文件作为socket地址
local_file = 'socket_file'
if os.path.exists(local_file):
    os.remove(local_file)

# 创建socket对象
server_socket = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)

# 绑定本地文件
server_socket.bind(local_file)

# 监听连接
server_socket.listen(1)

print("等待客户端连接...")

while True:
    # 接受客户端连接
    client_socket, _ = server_socket.accept()
    print("客户端已连接")

    while True:
        # 接收客户端发送的数据
        data = client_socket.recv(1024)
        if not data:
            break
        print("收到数据:", data.decode())

        # 向客户端发送数据
        client_socket.sendall(b"服务器已收到数据")

    # 关闭客户端连接
    client_socket.close()
    print("客户端已断开连接")

客户端代码

import socket
import os

# 创建本地文件作为socket地址
local_file = 'socket_file'

# 创建socket对象
client_socket = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)

# 连接到服务端
client_socket.connect(local_file)

while True:
    # 向服务端发送数据
    message = input("请输入要发送的消息: ")
    client_socket.sendall(message.encode())

    # 接收服务端返回的数据
    data = client_socket.recv(1024)
    print("收到服务端回复:", data.decode())

# 关闭客户端连接
client_socket.close()

首先运行服务端代码,然后运行客户端代码。在客户端输入消息,服务端会收到并回复。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
客户服务实时通信可以使用Python中的Socket库来实现。以下是一个简单的示例代码,其中客户服务建立连接后可以互相发送消息。 服务代码: ```python import socket # 创建socket对象 server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 获取本地主机名 host = socket.gethostname() # 设置口号 port = 9999 # 绑定口号 server_socket.bind((host, port)) # 设置最大连接数,超过后排队 server_socket.listen(5) while True: # 建立客户连接 client_socket, addr = server_socket.accept() print('连接地址:%s' % str(addr)) # 发送欢迎消息给客户 message = '欢迎访问服务器!' + "\r\n" client_socket.send(message.encode('utf-8')) while True: # 接收客户消息 data = client_socket.recv(1024).decode('utf-8') if not data: break print("客户消息:%s" % data) # 发送消息给客户 message = '服务已收到消息:' + data + "\r\n" client_socket.send(message.encode('utf-8')) # 关闭客户连接 client_socket.close() ``` 客户代码: ```python import socket # 创建socket对象 client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 获取本地主机名 host = socket.gethostname() # 设置口号 port = 9999 # 连接服务 client_socket.connect((host, port)) while True: # 发送消息给服务 message = input("请输入消息:") client_socket.send(message.encode('utf-8')) # 接收服务消息 data = client_socket.recv(1024).decode('utf-8') print("服务消息:%s" % data) # 判断是否退出 if message == 'exit': break # 关闭客户连接 client_socket.close() ``` 在以上代码中,服务使用`socket`库创建一个TCP socket对象,并绑定口号。在循环中等待客户连接,一旦客户连接成功,就向客户发送欢迎消息,并进入循环等待接收客户发送的消息。当客户关闭连接时,服务也关闭连接。 客户同样使用`socket`库创建一个TCP socket对象,并连接到指定的服务口号。然后进入循环等待用户输入消息并发送给服务。同时也在循环中接收服务的消息并打印出来,直到用户输入`exit`退出循环和关闭连接。 以上是一个简单的客户服务实时通信的示例,可以根据实际需要进行修改和扩展。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值