无法连接到StreamSocketListener

Ste*_*fan 3 c# sockets windows win-universal-app uwp

我正在尝试连接到Windows 10应用程序中的StreamSocketListener.如果客户端套接字位于同一个应用程序中,则此方法有效.但是如果我尝试从另一个应用程序(例如Putty)连接它就不起作用.几秒钟后,putty说"网络错误:连接被拒绝".

这是我的示例代码:

public sealed partial class MainPage : Page
{
    private StreamSocketListener listener;

    public MainPage()
    {
        this.InitializeComponent();

        listener = new StreamSocketListener();
        listener.ConnectionReceived += Listener_ConnectionReceived;
        listener.BindServiceNameAsync("12345").AsTask().Wait();
    }

    private async void Listener_ConnectionReceived(StreamSocketListener sender, StreamSocketListenerConnectionReceivedEventArgs args)
    {
        Debug.WriteLine("new connection");

        string message = "Hello World!";

        using (var dw = new DataWriter(args.Socket.OutputStream))
        {
            dw.WriteString(message);
            await dw.StoreAsync();
            dw.DetachStream();
        }
    }

    private async void Button_Click(object sender, RoutedEventArgs e)
    {
        // Test connection
        var serverHost = new HostName("localhost");
        var socket = new StreamSocket();

        await socket.ConnectAsync(serverHost, "12345");

        using (var dr = new DataReader(socket.InputStream))
        {
            dr.InputStreamOptions = InputStreamOptions.Partial;

            await dr.LoadAsync(12);
            var input = dr.ReadString(12);

            Debug.WriteLine("received: " + input);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在XAML中,我添加了一个按钮来测试客户端连接.

在清单中,我检查了"Internet(客户端)","Internet(客户端和服务器)"和"专用网络(客户端和服务器)".

编辑:我正在尝试连接在同一台计算机上.防火墙已停用.

kie*_*wic 11

您无法连接到StreamSocketListener在同一台计算机上运行的其他应用程序或进程,即使没有环回免除.您需要在另一台计算机上运行客户端.