/// <summary> /// 监听客户端请求 /// </summary> private void ListenClientConnect() { TcpClient newClient = null; while (true) { ListenClientDelegate d = new ListenClientDelegate(ListenClient); IAsyncResult result = d.BeginInvoke(out newClient, null, null); //使用轮询方式来判断异步操作是否完成 while (result.IsCompleted == false) { if (isExit) { break; } Thread.Sleep(250); } //获取Begin 方法的返回值和所有输入/输出参数 d.EndInvoke(out newClient, result); if (newClient != null) { //每接受一个客户端连接,就创建一个对应的线程循环接收该客户端发来的信息 User user = new User(newClient); Thread threadReceive = new Thread(ReceiveData); threadReceive.Start(user); userList.Add(user); AddItemToListBox(string.Format("[{0}]进入", newClient.Client.RemoteEndPoint)); AddItemToListBox(string.Format("当前连接用户数:{0}", userList.Count)); } else { break; } } }
/// <summary> /// 监听客户端请求 /// </summary> private void ListenClientConnect() { TcpClient newClient = null; while (true) { ListenClientDelegate d = new ListenClientDelegate(ListenClient); IAsyncResult result = d.BeginInvoke(out newClient, null, null); //使用轮询方式来判断异步操作是否完成 while (result.IsCompleted == false) { if (isExit) { break; } Thread.Sleep(250); } //获取Begin 方法的返回值和所有输入/输出参数 d.EndInvoke(out newClient, result); if (newClient != null) { //每接受一个客户端连接,就创建一个对应的线程循环接收该客户端发来的信息 TcpUser user = new TcpUser(newClient); Thread threadReceive = new Thread(ReceiveData); threadReceive.Start(user); userList.Add(user); } else { break; } } }
//<summary> //接收客户端连接 //</summary> private void ListenClientConnect() { TcpClient newClient = null; while (true) { //allDone.Reset(); Application.DoEvents(); ListenClientDelegate d = new ListenClientDelegate(ListenClient); IAsyncResult result = d.BeginInvoke(out newClient, null, null); //使用轮询方式来判断异步操作是否完成 if (result.IsCompleted == false) { //获取Begin 方法的返回值和所有输入/输出参数 d.EndInvoke(out newClient, result); } //allDone.WaitOne(); if (newClient != null) { //RegisterSession(newClient.Client); //每接受一个客户端连接,就创建一个对应的线程循环接收该客户端发来的信息 ClientUser user = new ClientUser(newClient); user.ThreadReceive = new Thread(ReceiveData); user.ThreadReceive.Start(user); } else { break; } } }
/// <summary> /// 監聽用戶端請求 /// </summary> private void ListenClientConnect() { TcpClient newClient = null; while (true) { ListenClientDelegate d = new ListenClientDelegate(ListenClient); IAsyncResult result = d.BeginInvoke(out newClient, null, null); //使用輪詢方式來判斷非同步作業是否完成 while (result.IsCompleted == false) { if (isExit) { break; } Thread.Sleep(250); } //獲取Begin 方法的返回值和所有輸入/輸出參數 d.EndInvoke(out newClient, result); if (newClient != null) { //每接受一個用戶端連接,就創建一個對應的執行緒迴圈接收該用戶端發來的資訊 User user = new User(newClient); Thread threadReceive = new Thread(ReceiveData); threadReceive.Start(user); userList.Add(user); AddItemToListBox(string.Format("[{0}]進入", newClient.Client.RemoteEndPoint)); AddItemToListBox(string.Format("當前連接用戶數:{0}", userList.Count)); } else { break; } } }
/// <summary> /// 监听客户端请求 /// </summary> private void ListenClientConnect() { TcpClient newClient = null; while (true) { ListenClientDelegate d = new ListenClientDelegate(ListenClient); IAsyncResult result = d.BeginInvoke(out newClient, null, null); //使用轮询方式来判断异步操作是否完成 while (result.IsCompleted == false) { if (isExit) { break; } Thread.Sleep(100); } //获取Begin 方法的返回值和所有输入/输出参数 d.EndInvoke(out newClient, result); if (newClient != null) { //每接受一个客户端连接,就创建一个对应的线程循环接收该客户端发来的信息 ServerInfo info = new ServerInfo(newClient); Thread threadReceive = new Thread(ReceiveData) { IsBackground = true }; threadReceive.Start(info); dgAddClient(info); dgLog(string.Format("[{0}]已连接", newClient.Client.RemoteEndPoint)); //dgLog(string.Format("当前连接客户端数:{0}", InfoList.Count)); } else { break; } } }
/// <summary> /// 监听客户端请求 /// </summary> private void ListenClientConnect() { TcpClient newClient = null; while (true) { ListenClientDelegate d = new ListenClientDelegate(ListenClient); IAsyncResult result = d.BeginInvoke(out newClient, null, null); //使用轮询方式来判断异步操作是否完成 while (result.IsCompleted == false) { if (Instance.ISExit) { break; } Thread.Sleep(50); //Thread.Sleep(100); } //获取Begin 方法的返回值和所有输入/输出参数 d.EndInvoke(out newClient, result); if (newClient != null) { //每接受一个客户端连接,就创建一个对应的线程循环接收该客户端发来的信息 User user = new User(newClient); user.IP = newClient.Client.RemoteEndPoint.ToString(); //日志 Console.WriteLine(string.Format("用户{0}上线", user.IP)); Thread threadReceive = new Thread(ReceiveData); threadReceive.Start(user); Instance.UserList.Add(user); } else { break; } } }
/// <summary> /// 监听客户端请求 /// </summary> private void ListenClientConnect() { TcpClient newClient = null; while (true) { ListenClientDelegate d = new ListenClientDelegate(ListenClient); IAsyncResult result = d.BeginInvoke(out newClient, null, null); //使用轮询方式来判断异步操作是否完成 while (result.IsCompleted == false) { if (isExit) break; Thread.Sleep(100); } //获取Begin 方法的返回值和所有输入/输出参数 d.EndInvoke(out newClient, result); if (newClient != null) { //每接受一个客户端连接,就创建一个对应的线程循环接收该客户端发来的信息 ServerInfo info = new ServerInfo(newClient); Thread threadReceive = new Thread(ReceiveData){IsBackground = true}; threadReceive.Start(info); dgAddClient(info); dgLog(string.Format("[{0}]已连接", newClient.Client.RemoteEndPoint)); //dgLog(string.Format("当前连接客户端数:{0}", InfoList.Count)); } else { break; } } }
/// <summary>监听客户端请求</summary> private void ListenClientConnect() { TcpClient newClient = null; while (true) { ListenClientDelegate d = new ListenClientDelegate(ListenClient); IAsyncResult result = d.BeginInvoke(out newClient, null, null); //使用轮询方式来判断异步操作是否完成 while (result.IsCompleted == false) { if (isExit) { break; } Thread.Sleep(250); } //获取Begin方法的返回值和所有输入/输出参数 d.EndInvoke(out newClient, result); if (newClient != null) { //每接受一个客户端连接,就创建一个对应的线程循环接收该客户端发来的信息 User user = new User(newClient); Thread threadReceive = new Thread(ReceiveData); threadReceive.Start(user); userList.Add(user); service.AddItem(string.Format("[{0}]进入", newClient.Client.RemoteEndPoint)); service.AddItem(string.Format("当前连接用户数:{0}", userList.Count)); } else { break; } } }