110,538
社区成员
发帖
与我相关
我的任务
分享
_client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
_client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
IPEndPoint ipep = new IPEndPoint(IPAddress.Parse(_ip), _port);
_client.Ttl = 10;//这句有效吗?
_client.BeginConnect(ipep, new AsyncCallback(ConnectCallback), _client);
_connectDone.WaitOne(100, true);//第二个参数该用false还是用true
//连接成功后,异步发送数据
......
Socket _client;
_client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
_client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
IPEndPoint ipep = new IPEndPoint(IPAddress.Parse(_ip), _port);
_client.Ttl = 10;//这句有效吗?
IAsyncResult ias= _client.BeginConnect(ipep, new AsyncCallback(ConnectCallback), _client);
int i = System.Environment.TickCount;
//timeout 1000ms
int timeout=1000;
while (System.Environment.TickCount - i <= timeout)
{
if (_client.Connected == true)
{
MessageBox.Show("connected success!");
break;
}
Application.DoEvents();
}
if (_client.Connected == false)
{
ias.AsyncWaitHandle.WaitOne(0, false);
MessageBox.Show("connected timeout");
}