[英]why does the 2 computers connection between the server(python) and the client (C# in unity) does not work?
我正在嘗試從兩台計算機(一台是服務器(python),一台是客戶端(unity 和 C#))上玩我的統一游戲,但是當我嘗試連接統一控制台時,會顯示此錯誤:
“SocketException:連接嘗試失敗,因為連接方在一段時間后沒有正確響應,或者連接失敗,因為連接的主機沒有響應。”
如果我更改客戶端 IP 並在同一台計算機上運行它,它會工作
你能幫我解決這個問題嗎?
這是客戶端 c# 代碼(統一):
socket my_socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse("192.168.43.95"), 7777);
GameMaster.my_socket.Connect(endPoint);
這是服務器代碼(在 python 中):
import socket
my_socket = socket.socket()
my_socket.bind(('0.0.0.0', 7777))
my_socket.listen(5)
(client_socket, client_address) = my_socket.accept()
print str(client_address)+" is connected"
除了錯誤 IP 和端口,你不知道你想使用什么協議 UDP 或 TCP?
所以你的 Unity 程序似乎在 TCP
我認為您在 python 中的定義不好(例如,我看不到 TCP 的接受)[您已經修改了答案,現在可以了]
如果你想在 python 中做 TCP 你有一個樣本這里
導入套接字
TCP_IP = "your IP"
TCP_PORT = yourPort
sock = socket.socket(socket.AF_INET, # Internet
socket.SOCK_STREAM) # TCP
sock.bind((TCP_IP, TCP_PORT))
sock.listen(1)
conn, addr = sock.accept()
print 'Connection address:', addr
while 1:
data = conn.recv(BUFFER_SIZE)
if not data: break
print "received data:", data
conn.send(data) # echo
conn.close()
之后為了性能,如果你接受一些數據松動,我建議你選擇 UDP..
您會在 C# 和 Python 中找到很多示例,用於客戶端/服務器 TCP 或 ZF5EF00ZE36514D8B89FEBC923
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.