Клиент Unity TCP работает в Windows, но не на Android (та же сеть Wi-Fi)C#

Место общения программистов C#
Ответить
Anonymous
 Клиент Unity TCP работает в Windows, но не на Android (та же сеть Wi-Fi)

Сообщение Anonymous »

Я хочу спросить следующее:
При запуске серверного кода в Visual Studio и клиентского кода в Unity в Windows сервер успешно получает ответы от клиента.
Однако при запуске серверного кода в Visual Studio и клиентского кода в качестве мобильного приложения на телефоне сервер не может получать ответы от клиента.
В чем причина этого?
Смартфон и мой ноутбук подключен к той же сети Wi-Fi.
Код сервера:
using System.Net;
using System.Net.Sockets;
using System.Text;

namespace ServerCore
{
internal class Program
{
static void Main(string[] args)
{
string hostName = Dns.GetHostName();
IPHostEntry ipHostEntry = Dns.GetHostEntry(hostName);
IPAddress ipAddress = ipHostEntry.AddressList[1];
IPEndPoint endPoint = new IPEndPoint(ipAddress, 7777);

Socket listenSocket = new Socket(endPoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
try
{
listenSocket.Bind(endPoint);
listenSocket.Listen(10);

while (true)
{
Console.WriteLine("Listening..");

//클라이언트 입장을 기다린다.
Socket clientSocket = listenSocket.Accept();

//받는다
byte[] recvBuffer = new byte[1024];
int recvBytes = clientSocket.Receive(recvBuffer);
string recvData = Encoding.UTF8.GetString(recvBuffer, 0, recvBytes);

Console.WriteLine($"[From Client] {recvData}");

//보낸다
byte[] sendBuff = Encoding.UTF8.GetBytes("Welcome To MMORPG Server");
clientSocket.Send(sendBuff);

//쫒아낸다.
clientSocket.Shutdown(SocketShutdown.Both);
clientSocket.Close();
}
}
catch (Exception ex)
{

}
}
}
}

Код клиента:
using System.Net;
using System.Net.Sockets;
using System.Text;
using UnityEngine;

public class NetWorkTest : MonoBehaviour
{
void Start()
{
string hostName = Dns.GetHostName();
IPHostEntry ipHostEntry = Dns.GetHostEntry(hostName);
IPAddress ipAddress = ipHostEntry.AddressList[1];
IPEndPoint endPoint = new IPEndPoint(ipAddress, 7777);

Socket socket = new Socket(endPoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp);

socket.Connect(endPoint);

byte[] send = Encoding.UTF8.GetBytes("Hello From Unity");
socket.Send(send);

byte[] recv = new byte[1024];
int len = socket.Receive(recv);

Debug.Log(Encoding.UTF8.GetString(recv, 0, len));

socket.Close();
}
}


Подробнее здесь: https://stackoverflow.com/questions/798 ... fi-network
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»