服务器返回状态码' 200'当状态代码' 101'预计在WebSockets中

时间:2016-06-30 11:38:04

标签: c# sockets

我是网络套接字的新手,我为Web套接字客户端和服务器编写了一个示例C#控制台应用程序。当从客户端连接到服务器时,如果我将HTTPListenerPrefix URl指定为客户端或服务器的IP地址(但不是两者),则会收到上述异常。如果我改为指定机器名,那么一切都按预期工作。

服务器代码:

    //server.Start("http://inpsservice10:80/");
    server.Start("http://131.163.140.92:80/");
}

public async void Start(string httplistenerPrefix)
{
    HttpListener httplistner = new HttpListener();
    httplistner.Prefixes.Add(httplistenerPrefix);
    httplistner.Start();
    Console.WriteLine("Listening");
    while(true)
    {
        HttpListenerContext httplistencontext = await httplistner.GetContextAsync();
        if (httplistencontext.Request.IsWebSocketRequest)
            ProcessRequest(httplistencontext);
        else
        {
            httplistencontext.Response.StatusCode = 400;
            httplistencontext.Response.Close();
        }
    }
} 

客户代码:

Connect("ws://131.163.140.92:80/").Wait();
private static async Task Connect(string uri)
{
    Thread.Sleep(1000);
    ClientWebSocket webSocket = null;
    try
    {
        webSocket = new ClientWebSocket();
        await webSocket.ConnectAsync(new Uri(uri), CancellationToken.None); //i'm getting exception here.
        await Task.WhenAll(Receive(webSocket), Send(webSocket));
    }
    catch (Exception ex)
    {
        Console.WriteLine("Conenct: " + ex.Message);
    }
}

0 个答案:

没有答案