首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Unity3D到树莓派服务器的连接无法响应

Unity3D到树莓派服务器的连接无法响应
EN

Stack Overflow用户
提问于 2018-06-12 21:30:10
回答 2查看 418关注 0票数 1

所以昨天我在一个树莓派上和Unity对话( Pi上的Python 2.7,Unity 2017),然后记忆卡出了故障,我不得不重新构建一个。新安装的是Python3.5和之前相同的Unity。我想我写的代码大致是一样的,虽然在排除故障的时候有了一些改变(打印语句改变了,等等3.5版)。无论哪种方式,我在Unity端都会收到一个错误,说连接方在一段时间后没有正确响应。我已经从PC和其他计算机Pi了IP和套接字,它是可以访问的,但只有Unity应用程序不能与Pi Server通信。有人能看到我在代码中哪里搞砸了吗?PC上的防火墙已禁用,并且Pi的IP/端口地址正确。

Raspberry Pi上的Python

import socket
import sys

backlog = 1
size = 1024
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('192.168.3.232', 12345))
s.listen(1)

while True:
    print ('waiting for a connection')
    connection, client_address = s.accept()

try:
    print ('connection from', client_address)
    while True:
        data = connection.recv(16)
        print ('received "%s"' % data)
        if data:
            print ('sending data back to the client')
            connection.sendall(data)
        else:
            print ('no more data from', client_address)
            break

finally:
    print("closing socket")
    cient.close()
    s.close()

统一上的C#

using UnityEngine;
using System.Collections;
using System;
using System.IO;
using System.Net.Sockets; 

public class ClientSocket : MonoBehaviour {

 bool socketReady = false;
 TcpClient mySocket;
 public NetworkStream theStream;
 StreamWriter theWriter;
 StreamReader theReader;
 public String Host = "192.168.3.232";
 public Int32 Port = 12345;     

 void Start() {
     setupSocket ();
 }


 public void setupSocket() {                            // Socket setup here
     try {                
         mySocket = new TcpClient(Host, Port);
         theStream = mySocket.GetStream();
         theWriter = new StreamWriter(theStream);
         theReader = new StreamReader(theStream);
         socketReady = true;
     }
     catch (Exception e) {
         Debug.Log("Socket error:" + e);                // catch any exceptions
     }
 }

来自统一控制台的错误: Socket error:System.Net.Sockets.SocketException:连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立的连接失败,因为连接的主机没有响应。

EN

回答 2

Stack Overflow用户

发布于 2018-06-12 22:24:11

Raspberry Pi上的防火墙可能还在运行。检查您的iptables。如果您在Raspberry Pi上用python编写了一个小型套接字测试应用程序,则可以对此进行测试。

票数 0
EN

Stack Overflow用户

发布于 2018-10-09 21:23:25

@ Colin。我将你的Python代码复制并粘贴到我的Raspberry Pi上运行的Python2.7.9中,以及我PC上运行的Unity中的客户端套接字中,它工作得很好。只需更改IP地址,一切工作正常。我知道这是一个迟来的回复,但它可能会对其他人有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50818491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档