我基本上想将数据从一个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)
。