private static bool transToTargetData(TransCenterSockets tcs) { Log.Info (getSocketStr(tcs.socketClient) + tcs.socketClient.Available); ByteBuffer data = new ByteBuffer (tcs.socketClient.Available); data.setTop (tcs.socketClient.Available); tcs.socketClient.Receive (data.getArray (), SocketFlags.None); tcs.transPortServer.isServer = true; try { tcs.transPortServer.dataBuffer = data.Clone() as ByteBuffer; tcs.transPortServer.receive (data, true); } catch (Exception e) { Log.Error (e.Message); } data.position = 0; tcs.socketServer.Send (data.getArray ()); return true; }
private static void toTargetSuccess(TransCenterSockets tcs) { //TransCenterSockets tcs = new TransCenterSockets (); //tcs.socketClient = clientSocket; Thread receiveServerThread = new Thread (ReceiveServerMessage); receiveServerThread.Start (tcs); Log.Info ("建立到远程服务器的连接[{0}-->{1}]", tcs.socketServer.LocalEndPoint.ToString (), tcs.socketServer.RemoteEndPoint.ToString ()); }
private static bool transToClientData(TransCenterSockets tcs) { Log.Info ( getSocketStr(tcs.socketServer)+ tcs.socketServer.Available); ByteBuffer data = new ByteBuffer (tcs.socketServer.Available); data.setTop (tcs.socketServer.Available); tcs.socketServer.Receive (data.getArray (), SocketFlags.None); tcs.transPortClient.isServer = false; try { CallBack cb = delegate { data.position = 0; tcs.socketClient.Send (data.getArray ()); }; tcs.transPortClient.erlConnect.transCallBack = null; tcs.transPortClient.dataBuffer = data.Clone () as ByteBuffer; tcs.transPortClient.receive (data, false); if (data.length () == 10) { data.position = 0; tcs.transPortServer.isServer = true; tcs.transPortServer.dataBuffer = data.Clone () as ByteBuffer; tcs.transPortServer.receive (data, true); } } catch (Exception e) { Log.Error (e.Message); } finally { //Log.Info ("+++++" + ports + "+++++++++++"); //if (ports!=5) { //} } return false; }
/// <summary> /// 监听客户端连接 /// </summary> private static void ListenClientConnect(Object _socket) { while (true) { Socket clientSocket = ((Socket)_socket).Accept (); Log.Info ("监听到[{0}-->{1}]的连接。", clientSocket.RemoteEndPoint.ToString (), clientSocket.LocalEndPoint.ToString ()); TransCenterSockets tcs = new TransCenterSockets (); tcs.socketClient = clientSocket; Thread receiveClientThread = new Thread (ReceiveMessage); receiveClientThread.Start (tcs); } }