System.Net.Sockets.SocketException 创建 websocket 连接时
System.Net.Sockets.SocketException when create a websocket connection
我是 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 库可用?
确定您的代码是否有问题的最简单方法是使用任何支持 web-socket 的浏览器尝试连接到端点,看看会发生什么。如果不确定,您也可以只使用 telnet
- 因为 web-sockets 最初是作为文本协议 (http 1.1 headers) 而您没有使用 SSL,所以您应该能够打开一个连接并发送一些虚拟 headers。如果 telnet
无法连接:您的代码将无法连接。
如果telnet
可以连接,那么可能是客户端库有问题。实际上,.NET 中内置了一个 web-socket 客户端,您应该可以使用它 (ClientWebSocket
)
我是 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 库可用?
确定您的代码是否有问题的最简单方法是使用任何支持 web-socket 的浏览器尝试连接到端点,看看会发生什么。如果不确定,您也可以只使用 telnet
- 因为 web-sockets 最初是作为文本协议 (http 1.1 headers) 而您没有使用 SSL,所以您应该能够打开一个连接并发送一些虚拟 headers。如果 telnet
无法连接:您的代码将无法连接。
如果telnet
可以连接,那么可能是客户端库有问题。实际上,.NET 中内置了一个 web-socket 客户端,您应该可以使用它 (ClientWebSocket
)