2013-07-12 231 views
0

我做了一个简单的套接字serer脚本和客户端脚本。套接字服务器连接错误

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

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(); 
     } 
    } 
} 
+0

什么是错误和/或问题?!? – tzerb

+0

这是由网络播放器或桌面运行吗? –

回答

1

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

相关问题