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

时间:2018-01-29 18:03:24

标签: python sockets

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

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

2 个答案:

答案 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")