【发布时间】:2019-06-02 18:24:08
【问题描述】:
基本上,我试图返回我在函数中获得的 ipaddress 并将其作为参数传递给另一个函数。由于它是一个 IP 地址,因此它给了我一个如上所述的错误。有没有其他方法可以让它变得更好?
代码如下:
import zmq
import time
import socket
import threading
import multiprocessing
from threading import Thread
def bd_recv():
login to get ip
def req_con(host):
context=zmq.Context()
socket = context.socket(zmq.REQ)
#address=host,port
port=3233
socket.connect("tcp://" "%s:%d" % ((host),port))
print("sending request")
socket.send_string("hey controller")
msg=socket.recv(1024)
print("received reply: %s" %msg)
class ThreadWithReturnValue(Thread):
def __init__(self, group=None, target=None, name=None,
args=(), kwargs={}, Verbose=None):
Thread.__init__(self, group, target, name, args, kwargs)
self._return = None
def run(self):
print(type(self._target))
if self._target is not None:
self._return = self._target(*self._args,
**self._kwargs)
def join(self, *args):
Thread.join(self, *args)
return self._return
if __name__=='__main__':
#t1=threading.Thread(target=bd_recv,name='bdrecv')
t3 = ThreadWithReturnValue(target=bd_recv)
#t1.start()
t3.start()
host=(t3.join()) --> The return ipaddress b is given as a host to other function
t2=threading.Thread(target=req_con,name='req',args=host,) --> here it gives me the error as 12 is given
t2.start()
【问题讨论】:
标签: multithreading zeromq python-multithreading pyzmq