我在使用两个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");
但是什么也没发生。 谢谢你的帮助 最好的问候
答案 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框上没有任何显示。我知道客户端正在连接,因为服务器正在关闭。 感谢您的帮助。