连接后{UWP StreamSocket应用程序关闭

时间:2017-03-12 16:13:11

标签: c# sockets uwp stream-socket-client

我已经使用了微软的示例代码,并尝试对其进行测试 在此代码中,服务器启动,接收连接,然后不执行任何其他操作。 连接后,程序将自行关闭,没有错误。任何人都可以对这个问题有所了解。我是套接字的新手。

 public sealed partial class MainPage : Page
{
    public MainPage()
    {
        this.InitializeComponent();
        StartServer();
        Connect();
    }
    public async void StartServer()
    {
        try
        {
            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("1337");
            Debug.WriteLine("Server Started");
        }
        catch (Exception e)
        {
            Debug.WriteLine("Server Failed to Start: "+e.Message );
        }
    }

    private void SocketListener_ConnectionReceived(StreamSocketListener sender, StreamSocketListenerConnectionReceivedEventArgs args)
    {

        try
        {
            //Read line from the remote client.
            //Stream inStream = args.Socket.InputStream.AsStreamForRead();
            //StreamReader reader = new StreamReader(inStream);
            //string request = await reader.ReadLineAsync();
            ////infobox.Text = request + "\n";

            ////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();
            Debug.WriteLine("Server Received Connection");
        }
        catch (Exception e)
        {
            Debug.WriteLine("Connection Error:" +e.Message);
        }

    }


    //client stuff
    public async void Connect()
    {
        try
        {
            StreamSocket socket = new StreamSocket();
            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 = "1337";
            await socket.ConnectAsync(serverHost, serverPort);
            Debug.WriteLine("Client Connected");
        }
        catch (Exception e)
        {
            Debug.WriteLine("Client Connect Error: " + e.Message);
        }

    }

}

然后我不能重新启动应用程序,除非我删除bin和obj目录,因为访问被拒绝。

0 个答案:

没有答案