C#套接字创建错误

C#套接字创建错误,c#,sockets,visual-studio-2017,stream-socket-client,C#,Sockets,Visual Studio 2017,Stream Socket Client,因此,我试图使用C#socket连接到服务器,但遇到了以下错误: System.Net.Internals.SocketException工厂+ExtendedSocketException: 一个暂时的谈话 自动回复日期:192.168.1.17:9999 (!!对不起,我不知道如何用英语安装visual studio) 这是我的密码 Socket sock; public MainPage() { this.InitializeComponent()

因此,我试图使用C#socket连接到服务器,但遇到了以下错误:

System.Net.Internals.SocketException工厂+ExtendedSocketException: 一个暂时的谈话 自动回复日期:192.168.1.17:9999

(!!对不起,我不知道如何用英语安装visual studio)

这是我的密码

    Socket sock;

    public MainPage()
    {
        this.InitializeComponent();
        // Initialize MyRecognizer and Load Grammar

        connectToYanaForAll("192.168.1.17", 9999);
        sendInfoToYanaSocket(sock);
        //createGrammarFromYana(sock);
        disconnectFromYana(sock);
    }

    public void sleep(long millis) { Stopwatch stopwatch = Stopwatch.StartNew();  while (true)  { if (stopwatch.ElapsedMilliseconds >= millis) { break; } }  }

    public void connectToYanaForAll(String ip, int port)
    {
        IPAddress ipAddress = IPAddress.Parse(ip); //ipHostInfo.AddressList[0];
        IPEndPoint remoteEP = new IPEndPoint(ipAddress, port);
        // Create a TCP/IP  socket.  
        sock = new Socket(ipAddress.AddressFamily, SocketType.Stream, ProtocolType.Tcp); <-- Fail at this line
        sock.Connect(remoteEP);
    }


    public void disconnectFromYana(Socket sock)
    {
        sock.Shutdown(SocketShutdown.Both);
        sock = null;
    }

    public void sendInfoToYanaSocket(Socket sock)
    {
        String infos = "{\"action\":\"client_infos\",\"type\":\"listen\",\"version\":\"2\",\"location\":\"bureau\",\"token\":\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"}<EOF>";
        byte[] msg = Encoding.ASCII.GetBytes(infos);
        int bytesSent = sock.Send(msg);
        Debug.WriteLine(String.Join(bytesSent.ToString()," bytes sent!"));
    }

    public void createGrammarFromYana(Socket sock)
    {
        String infos = "{\"action\":\"GET_SPEECH_COMMANDS\"}<EOF>";
        byte[] msg = Encoding.ASCII.GetBytes(infos);
        int bytesSent = sock.Send(msg);
        Debug.WriteLine(String.Join(bytesSent.ToString(), " bytes sent!"));

        sleep(200);

        byte[] bytes = new byte[4096];
        int bytesRec = sock.Receive(bytes);
        Debug.WriteLine(String.Join("Received: ", bytesRec.ToString(), " bytes!"));
        Debug.WriteLine("Text = {0}",Encoding.ASCII.GetString(bytes, 0, bytesRec));
    }
socketsock;
公共主页()
{
this.InitializeComponent();
//初始化MyRecognitor并加载语法
连接到Yanaforall(“192.168.1.17”,9999);
SendInfoToyana插座(sock);
//createGrammarFromYana(sock);
断开与Yana(袜子)的连接;
}
public void sleep(长毫秒){Stopwatch Stopwatch=Stopwatch.StartNew();而(true){if(Stopwatch.elapsedmillesons>=millis){break;}}
public void connectToYanaForAll(字符串ip,int端口)
{
IPAddress IPAddress=IPAddress.Parse(ip);//ipHostInfo.AddressList[0];
IPEndPoint remoteEP=新IPEndPoint(ipAddress,端口);
//创建TCP/IP套接字。

sock=new Socket(ipAddress.AddressFamily,SocketType.Stream,ProtocolType.Tcp);尝试将套接字绑定到端点,而不是连接,然后调用Listen。根据Google Translate,希望这有帮助。错误消息说: “试图访问其访问权限禁止的套接字的尝试为192.168.1.17:9999”


所以看起来仍然存在权限问题。也许您的系统上运行的防火墙只允许一些已知的传出连接?

因此解决方案是将该行放入Package.appxmanifest

<Capability Name="privateNetworkClientServer" />


标签中,你不明白我想连接到我的服务器而不是服务器对不起,我的错。我没有正确阅读问题。尝试查看。希望这对你有帮助。以前没有看到过异常。好的。希望你能解决。对不起,我帮不了你。首先正确阅读问题是绝对必要的这可能是一个愚蠢的问题,但你是以管理员的身份运行visual studio吗?与你的问题无关,只是软件工程的问题:请使用
System.Threading.Thread.Sleep(millis);
而不是繁忙的等待
Sleep(millis)
方法!