我基本上想要将数据从一个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)
我已经尝试了一段时间,除了服务器和客户端之外我没有在网上找到任何东西,只在它们之间发送一次数据然后关闭连接。我该怎么办?
答案 0 :(得分:2)
在server.py
中将s.sendall(message)
和s.recv(1024)
替换为c.sendall(message)
和s.recv(1024)
。
答案 1 :(得分:2)
我建议你试试zmq库。对于这种东西很棒。 启动服务器,然后启动客户端服务器将保持打开状态,直到您通过客户端发送关闭服务器。希望它有所帮助!
有关zmq的更多信息,您可以看到here
服务器侦听器
pre_save()
客户端
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")