创建WebSocket连接时出现System.Net.Sockets.SocketException异常

4

我是一个新手在websocket领域。我创建了一个运行在.net 4.5框架下的控制台应用程序,并使用"WebSocketSharp"库创建了一个示例websocket客户端。以下是我的代码:

using System;
using WebSocketSharp;


namespace WebsocketTest
{
    class Program
    {
        public static void Main(string[] args)
        {
            try
            { 
            using (var ws = new WebSocketSharp.WebSocket("ws://192.168.18.186:7884"))
            {
               Console.WriteLine("started");
                ws.Connect();
                ws.Send("START");
                Console.ReadLine();
                }
            }catch(Exception ex)
            {
                Console.WriteLine(ex.Message);
                Console.ReadLine();
            }

        }
    }
}

但我无法与运行在另一台机器上的WebSocket服务器建立连接。我收到了以下错误信息:

09-05-2017 16:20:41|Fatal|WebSocket.connect:0|System.Net.Sockets.SocketException (0x80004005): No connection could be made because the target machine actively refused it 192.168.18.186:7884
                             at System.Net.Sockets.TcpClient..ctor(String hostname, Int32 port)
                             at WebSocketSharp.WebSocket.setClientStream()
                             at WebSocketSharp.WebSocket.doHandshake()
                             at WebSocketSharp.WebSocket.connect()

我的代码出了什么问题?有没有好的WebSocket库可用?

1个回答

1

最简单的方法是使用任何支持web-socket的浏览器尝试连接端点并查看发生了什么,以此判断你的代码是否有问题。如果不确定,可以直接使用telnet-因为WebSocket最开始是作为文本协议(HTTP 1.1头部)启动的,并且未使用SSL,所以你应该能够打开一个连接并发送一些虚拟头部。如果telnet无法连接,则你的代码将无法连接。

如果telnet 可以 连接,则可能客户端库存在问题。实际上,在.NET中已经内置了一个WebSockets客户端ClientWebSocket,你应该可以使用它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接