C# 无法连接到UWP中的服务器套接字
我已经处理并粘贴了MSDN上使用TCP套接字在两个设备之间发送数据的示例,我一直得到“无法建立连接,因为目标机器主动拒绝它”” 客户:C# 无法连接到UWP中的服务器套接字,c#,sockets,uwp,C#,Sockets,Uwp,我已经处理并粘贴了MSDN上使用TCP套接字在两个设备之间发送数据的示例,我一直得到“无法建立连接,因为目标机器主动拒绝它”” 客户: try { //Create the StreamSocket and establish a connection to the echo server. Windows.Networking.Sockets.StreamSocket socket = new Windows.Networking.Sockets.StreamSocket();
try
{
//Create the StreamSocket and establish a connection to the echo server.
Windows.Networking.Sockets.StreamSocket socket = new Windows.Networking.Sockets.StreamSocket();
//The server hostname that we will be establishing a connection to. We will be running the server and client locally,
//so we will use localhost as the hostname.
Windows.Networking.HostName serverHost = new Windows.Networking.HostName("localhost");
//Every protocol typically has a standard port number. For example HTTP is typically 80, FTP is 20 and 21, etc.
//For the echo server/client application we will use a random port 1337.
string serverPort = "7777";
await socket.ConnectAsync(serverHost, serverPort);
//Write data to the echo server.
Stream streamOut = socket.OutputStream.AsStreamForWrite();
StreamWriter writer = new StreamWriter(streamOut);
string request = "test";
await writer.WriteLineAsync(request);
await writer.FlushAsync();
//Read data from the echo server.
Stream streamIn = socket.InputStream.AsStreamForRead();
StreamReader reader = new StreamReader(streamIn);
string response = await reader.ReadLineAsync();
}
catch (Exception e)
{
//Handle exception here.
}
服务器:
private async void Button_Click(object sender, RoutedEventArgs e)
{
try
{
//Create a StreamSocketListener to start listening for TCP connections.
StreamSocketListener socketListener = new StreamSocketListener();
//Hook up an event handler to call when connections are received.
socketListener.ConnectionReceived += SocketListener_ConnectionReceived;
//Start listening for incoming TCP connections on the specified port. You can specify any port that's not currently in use.
await socketListener.BindServiceNameAsync("7777");
}
catch (Exception ex)
{
//Handle exception.
}
}
private async void SocketListener_ConnectionReceived(StreamSocketListener sender, StreamSocketListenerConnectionReceivedEventArgs args)
{
//Read line from the remote client.
Stream inStream = args.Socket.InputStream.AsStreamForRead();
StreamReader reader = new StreamReader(inStream);
var request = await reader.ReadLineAsync();
//Send the line back to the remote client.
Stream outStream = args.Socket.OutputStream.AsStreamForWrite();
StreamWriter writer = new StreamWriter(outStream);
await writer.WriteLineAsync(request);
await writer.FlushAsync();
}
有人能告诉我我在这里遗漏了什么吗?
我已经添加了所需的功能,并使用了两台PC来运行此功能,但仍然不走运:(您的服务器正在侦听的端口与您的客户端尝试连接的端口不同。此外,您应该检查防火墙设置以确保端口处于打开状态否我已将服务器和客户端都设置为侦听端口7777,我刚刚从msdn复制了代码。这是我收到错误时做的第一件事,即更改端口号mber.您是否在同一台机器上运行服务器和客户端?如果是,请在不同的机器上运行服务器和客户端,那么它应该可以工作。MSDN还解释了这一点:@user3159792您的问题解决了吗?如果您对此问题有任何其他顾虑,请随时通知我。