public void StopListening() { if (_server == null) { return; } _server.StopListening(); _server = null; }
public void StartListening(int port) { Task.Factory.StartNew(() => { _server = new SynchronousSocket(); _server.SocketConnected += _server_SocketConnected; _localListenPort = port; _server.StartListening(LocalIP, port); }); }
private bool TryConnectRemote(IPEndPoint remote) { var synchronousSocket = new SynchronousSocket(); _client = synchronousSocket.StartConnecting(remote); if (_client == null) { string logMsg = string.Format("{0}向远端{1}发起连接失败!", this.GetType().ToString(), remote); _logger.Warn(logMsg); LogHelper.Instance.ErrorLogger.Add(new DbHelper.Entitys.ErrorLogEntity(DateTime.Now, "WARN", logMsg)); logMsg.RefreshUINotifyText(); return(false); } return(true); }
//private int GetRemoteListenPort(System.Net.Sockets.Socket socket) //{ // try // { // byte[] portBytes = new byte[16]; // int byteRec = socket.Receive(portBytes, 16, SocketFlags.None); // string portStr = Encoding.Unicode.GetString(portBytes, 0, 16).TrimEnd('\0'); // int port = int.Parse(portStr); // return port; // } // catch (SocketException se) // { // _logger.Error(string.Format("获取远端监听端口信息时发生套接字异常!SocketException ErrorCode:{0}", se.ErrorCode)); // return -1; // } // catch (Exception e) // { // _logger.Error(string.Format("获取远端监听端口信息时发生异常!异常信息:{0}", e.Message)); // return -1; // } //} private Socket TryConnectRemote(IPEndPoint remote) { _client = new SynchronousSocket(); int connectedCount = 1; Socket socket = _client.StartConnecting(remote); _logger.Info(string.Format("第{0}次向远端{1}:{2}发起连接{3}!", connectedCount, remote.Address, remote.Port, socket == null ? "失败" : "成功")); //连接远端不成功时,再尝试 while (socket == null && connectedCount < CONNECTED_MAXCOUNT) { Thread.Sleep(500); socket = _client.StartConnecting(remote); connectedCount++; _logger.Info(string.Format("第{0}次向远端{1}:{2}发起连接{3}!", connectedCount, remote.Address, remote.Port, socket == null ? "失败" : "成功")); } return(socket); }