连续连续在两个 python 脚本之间发送数据



我基本上想将数据从一个python文件发送到另一个python文件,然后让另一个python文件将更多数据发送回第一个文件,然后第一个文件再次发送数据,这种情况一直持续到我选择停止发送数据。

server.py:

import socket
s = socket.socket()
host = "127.0.0.1"
port = 5409
s.bind((host, port))
s.listen(1)
while True:
    c, addr = s.accept()  
    print 'Got connection from', addr
    while True:
        message = raw_input(">>")
        s.sendall(message)
        try:
            print s.recv(1024)
        except:
            print ""

client.py:

import socket               
s = socket.socket()         
host = "127.0.0.1"         
port = 5409                 
s.connect((host, port))
while True:
    print s.recv(1024)
    message = raw_input(">>")
    s.send(message)

我已经尝试了一段时间,除了服务器和客户端在它们之间发送一次数据然后关闭连接之外,我在网上没有发现任何东西。我能做什么?

我建议你试试zmq库。这种东西很棒。启动服务器,然后启动客户端服务器将保持打开状态,直到您将 trough 客户端发送到关闭服务器。希望对您有所帮助!

更多关于 zmq 的信息,您可以在这里看到

服务器侦听器

    import time
    import zmq
    import json
    from datetime import datetime
    context = zmq.Context()
    socket = context.socket(zmq.REP)
    socket.bind("tcp://*:50165")
    import re
    while True:
        #  Wait for next request from client
        message = socket.recv()
        message = str(message)
        print(datetime.now(),message)
        #  Send reply back to client
        socket.send(b"Data Recieved")

客户

import zmq
from time import sleep
context = zmq.Context()
#  Socket to talk to server
print("Connecting to hello world server…")
socket = context.socket(zmq.REQ)
socket.connect("tcp://localhost:50165")
sleep(2)
#  Do 10 requests, waiting each time for a response
for request in range(10):
    print("Sending request %s …" % request)
    socket.send(b"1Hello")
    sleep(0.01)
    #  Get the reply.
    message = socket.recv()
    print("Received reply %s [ %s ]" % (request, message))

in server.py

s.sendall(message)s.recv(1024)替换为c.sendall(message)s.recv(1024)

最新更新