简体   繁体   English

Python使用Eventlet套接字多次调用

[英]Python socket multiple calls using Eventlet

I need to call a socker server multiple times and print its output. 我需要多次调用Socker服务器并打印其输出。

Here is my below code:- 这是我的以下代码:-

server.py server.py

import socket

s = socket.socket()

host = socket.gethostname()

port = 1234

s.bind((host, port))

s.listen(5)

print "Server started"
while True:
    c, addr = s.accept()
    print('Got connection from', addr)
    #sprint('Received message == ',c.recv(50))
    s = c.recv(50)[::-1]
    c.send(s)
    c.close()

client.py client.py

    import socket
from time import sleep
import eventlet

def socket_client():
    s = socket.socket()

    host = socket.gethostname()

    port = 1234

    s.connect((host, port))

    print "Sending data"
    s.sendall("Hello!! How are you")
    print(s.recv(1024))

#socket_client()
pile = eventlet.GreenPile()

for x in range(10):
        print 'new process started'
        pile.spawn(socket_client())
        print 'new process started over'

print 'over'

I use a python eventlet to call the socket_client() 10 times but its not returning the correct result.. 我使用python eventlet调用socket_client()10次,但未返回正确的结果。

You're overriding variable with socket by string received from socket: 您正在通过从套接字收到的字符串用套接字覆盖变量:

s = socket.socket()
...
s = c.recv(50)[::-1]

Pick different variable name for the second case. 对于第二种情况,请选择其他变量名称。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM