【发布时间】:2017-08-28 15:39:13
【问题描述】:
System.Net.Sockets.SocketException: '提供了一个无效的参数'
_socket.Connect(Dns.GetHostAddresses("vcap.me"), 1832);
完整代码:
namespace App.Root.Core.Network.Sockets
{
class SocketHandler
{
private readonly Socket _socket;
private readonly Timer _timer;
public SocketHandler()
{
_socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
_timer = new Timer(OnTick, null, TimeSpan.FromSeconds(1), TimeSpan.FromSeconds(1));
}
private void Connect()
{
if (IsConnected())
{
return;
}
_socket.Connect(Dns.GetHostAddresses("vcap.me"), 1832);
}
private bool IsConnected()
{
return !((_socket.Poll(1000, SelectMode.SelectRead) && (_socket.Available == 0)) || !_socket.Connected);
}
private void OnTick(object obj)
{
if (!IsConnected())
{
CoreUtilities.LogToConsole("Connecting to the server...");
Connect();
}
}
}
}
我所做的只是初始化 SocketHandler 构造函数。
【问题讨论】: