套接字服务器连接错误

时间:2013-07-12 13:25:41

标签: sockets connection unity3d crossdomain.xml

我制作了一个简单的套接字serer脚本和一个客户端脚本。

如果我在同一个项目中运行这两个脚本没有问题,但如果我从Unity3D游戏引擎运行客户端脚本没有连接,控制台说我需要一个Crossdomain策略。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
//using System.Threading.Tasks;
using System.Net;
using System.Net.Sockets;
namespace SocketServer
{
    class Program
    {
        static byte[] Buffer { get; set; }
        static Socket sck;

        static void Main(string[] args)
        {

            sck = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            sck.Bind(new IPEndPoint(0, 5111));
            sck.Listen(100);


            Socket accepted = sck.Accept();
            Buffer = new Byte[accepted.SendBufferSize];
            int bytesRead = accepted.Receive(Buffer);
            byte[] formatted = new byte[bytesRead];
            for (int i = 0; i < bytesRead; i++)
            {
                formatted[i] = Buffer[i];
            }

            string strData = Encoding.ASCII.GetString(formatted);
            Console.Write(strData + "\r\n");
            Console.Read();
            sck.Close();
            accepted.Close();
        }
    }
}

1 个答案:

答案 0 :(得分:1)

如果您的统一构建设置是网络播放器,那么您将收到跨域策略错误。另一方面,桌面/独立构建设置应该没有跨域策略问题。您可以使用Unity standalone和Raknet(用于套接字)实现套接字实现。我已经实现了它,可以像socket一样进行通信。这是文档链接http://www.jenkinssoftware.com/raknet/manual/detailedimplementation.html

相关问题