代碼如下:
from socket import *
import threading
import time
tcp_socket = socket(AF_INET, SOCK_STREAM)
tcp_socket.connect(('192.168.10.63', 10002))
def send_msg(device_index):
send_msg = 'get tx info {}'.format(device_index)
tcp_socket.send(send_msg.encode('utf-8'))
time.sleep(0.5)
recv_msg = tcp_socket.recv(4444).decode("utf8")
print('%s\n' % recv_msg)
threads = []
for i in range(5):
t = threading.Thread(target=send_msg, args=(i,))
threads.append(t)
t.start()
for t in threads:
t.join()
問題如下:
回圈是5次,但是每次運行到第三次的時候,就卡著不動了,最后卡個一分鐘左右就不再執行,直接停掉了;
我的目的就是想讓客戶端并發向服務器查詢資訊,但是運行起來有問題,查了好久百度了也未解決,請各位大佬幫我看看,謝謝了!
uj5u.com熱心網友回復:
def send_msg(device_index):
tcp_socket = socket(AF_INET, SOCK_STREAM)
tcp_socket.connect(('192.168.10.63', 10002))
send_msg = 'get tx info {}'.format(device_index)
tcp_socket.send(send_msg.encode('utf-8'))
time.sleep(0.5)
recv_msg = tcp_socket.recv(4444).decode("utf8")
print('%s\n' % recv_msg)
tcp_socket.close()
把創建socket連接放到執行緒函式里,不要共用同一個連接。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/253203.html
