目前正在創建 TCP 套接字以發送和接收后端應用程式的資料,但我面臨self.socket.connect(("localhost", 8000)) OSError: [Errno 22] Invalid argument錯誤......在這里與其他論壇一起查找了類似的錯誤,并且與我放置self.socket.connect(("localhost", 8000))在start_client函式中的其他縮進代碼中有關,但是當我嘗試將它放在檔案中的其他位置我要么沒有定義自我,要么引數無效socket_connect
這是我的 ClientServer.py 代碼:
import socket
from threading import Thread
MAX_BUFFER_SIZE = 4096
class ClientServer(Thread):
def __init__(self):
print("Client Server started w/ new threads...")
Thread.__init__(self)
self.socket = None
def send_to_Server(self, data):
print('Time to send data to Server..... %s', data)
self.socket.send(data.encode("utf8"))
def receive_from_Server(self):
print('Time to receive from Server.....')
result_bytes = self.socket.recv(MAX_BUFFER_SIZE)
result_string = result_bytes.decode("utf8")
print("Result from server is {}".format(result_string))
def start_client(self):
# Creates TCP socket
self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# Re-uses socket
self.socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
# Binds socket to host and port
self.socket.bind(("localhost", 8000))
# Connects socket to host and port
self.socket.connect(("localhost", 8000))
print('Client connected....')
threads = []
def connect_client(self):
while True:
# Become a server socket
self.socket.listen(5)
self.__clients = {}
# Starts connection
(clientSocket, client_address) = self.socket.accept()
newthread = ClientServer("localhost", 8000)
newthread.start
threads.append(newthread)
for t in threads:
t.join()
cs = ClientServer()
cs.start_client()
cs.connect_client()
cs.send_to_Server('Hello')
cs.receive_from_Server()
uj5u.com熱心網友回復:
socket.bind被服務器用來開始提供服務。 socket connect由客戶端使用。如果這只是應該是客戶端,則洗掉bind呼叫。在此處查看圖表:
套接字連接()與系結()
在這種情況下,您的班級名稱可能不合適。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/492954.html
上一篇:回圈中重復相同的輸出
