C#UWP客户端服务器连接发送字符串

时间:2018-07-12 14:43:05

标签: c# tcp server uwp client

我在使用两个uwp应用程序时遇到问题:一个客户端和一个服务器进行通信。

我每个都有一个文本框和一个按钮。

服务器端是这样的:

listenerSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPEndPoint ipEnd = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8888);
listenerSocket.NoDelay = true;
listenerSocket.Bind(ipEnd);
listenerSocket.Listen(0);

并在ButtonClick上

Socket clientSocket = listenerSocket.Accept();
Byte[] Buffer = new byte[clientSocket.SendBufferSize];
int readByte = clientSocket.Receive(Buffer);
txtEvents.Text = readByte.ToString();

在客户端是这样

client= new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPEndPoint ipEnd = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8888);

并在buttonClick_Event上

client.Connect(ipEnd);
client.Send(System.Text.Encoding.UTF8.GetBytes("Hey");

但是什么也没发生。 谢谢你的帮助 最好的问候

2 个答案:

答案 0 :(得分:0)

作为document Note部分:

  

由于network isolation,Windows不允许   在两个UWP之间建立套接字连接(套接字或WinSock)   在同一台计算机上运行的应用;是否通过当地   回送地址(127.0.0.0),或通过显式指定本地IP   地址。

您可以尝试在分别部署客户端和服务器的两个设备上测试套接字。

此外,您还可以为网络访问启用环回功能并解决网络隔离问题,请查看How to enable loopback and troubleshoot network isolation主题以获取详细信息。

答案 1 :(得分:0)

I try to modify my code with this sample : https://social.msdn.microsoft.com/Forums/vstudio/en-US/3f4d435b-48c8-4b5f-9c5c-8ba1166fd808/uwpctcp-socket-server-using-ipendpoint-uwp?forum=wpdevelop替换字符串中的所有url 那对我的Accept()有帮助。挂在我的应用程序上,但是现在在我的服务器端,我尝试查看客户端通过此行发送的文本

private void RecieveArg_Completed(object sender, SocketAsyncEventArgs e)
    {
        byte[] recBuf = new byte[e.BytesTransferred];
        Array.Copy(buffer, recBuf, e.BytesTransferred);
        string ReceivedText = Encoding.ASCII.GetString(recBuf);
        txt_Events.Text = ReceivedText;
        Client_Socket.ReceiveAsync(RecieveArg);
    }

,但是我的服务器txt_Events框上没有任何显示。我知道客户端正在连接,因为服务器正在关闭。 感谢您的帮助。