public void SendData(NetworkMsg Msg) { byte[] bytes = null; bytes = Serialization.Serialize(Msg, Msg); bytes = Encode(bytes); TCPSocket.SendData(bytes); }
protected void SendCommand(String Command) { var CommandBytes = Encoding.UTF8.GetBytes(Command + "\r\n"); TCPSocket.Poll(SelectMode.SelectWrite, CancellationToken.Value); Stream.Write(CommandBytes, 0, CommandBytes.Length); }
public void TestPortInUse() { hMailServer.Application application = SingletonProvider <Utilities> .Instance.GetApp(); application.Stop(); var serverSocket = new ServerSocket(1, 25); serverSocket.StartListen(); application.Start(); TCPSocket sock = new TCPSocket(); // make sure it's possible to connect to the non blocked port. sock.CanConnect(110); sock.CanConnect(143); //let this our temp server die. sock.CanConnect(25); // make sure that hMailServer reported an error during start up because the ports were blocked. Utilities.AssertReportedError(); // restart hMailServer again. everything is now back to normal. application.Stop(); application.Start(); sock.CanConnect(25); }
public Node(StreamPacketizer p, TCPSocket s) { socket = s; packetizer = p; thr = new Thread(Run); thr.Start(); }
public void TestLongLineInIMAPConversation() { // hMailServer is kind and allows up to 1000000 octets. StringBuilder sb = new StringBuilder(); for (int i = 0; i < 100000; i++) { sb.Append("1234567890"); } sb.Append(".com\r\n"); string command = "A03 NOOP " + sb.ToString(); TCPSocket socket = new TCPSocket(); Assert.IsTrue(socket.Connect(143)); socket.Receive(); socket.Send(command); try { string response = socket.Receive(); Assert.IsTrue(response.StartsWith("* BYE")); } catch (System.Net.Sockets.SocketException ex) { Assert.IsTrue(ex.ErrorCode == 10054); } socket.Disconnect(); }
public void TestLongSMTPCommand() { TCPSocket socket = new TCPSocket(); socket.Connect(25); // Build a large string... StringBuilder sb = new StringBuilder(); sb.Append("A01"); for (int i = 0; i < 1000000; i++) { sb.Append("01234567890"); } int length = sb.Length; sb.Append(Environment.NewLine); for (int i = 0; i < 100; i++) { try { socket.Send(sb.ToString()); } catch (Exception) { return; } } socket.Send("\r\n"); string result = socket.Receive(); socket.Disconnect(); }
public void TestLongLineInPOP3Conversation() { StringBuilder sb = new StringBuilder(); for (int i = 0; i < 400; i++) { sb.Append("1234567890"); } sb.Append(".com"); string command = "NOOP " + sb.ToString(); TCPSocket socket = new TCPSocket(); Assert.IsTrue(socket.Connect(110)); socket.Receive(); socket.Send(command + "\r\n"); string response = socket.Receive(); Assert.IsFalse(response.StartsWith("+OK")); socket.Disconnect(); }
public void SetupSSLPort() { _application.Settings.Logging.Enabled = true; _application.Settings.Logging.LogTCPIP = true; _application.Settings.Logging.EnableLiveLogging(true); TCPSocket cs = new TCPSocket(); if (!cs.Connect(250)) { Assert.Fail("Could not connect to SSL server."); } cs.Disconnect(); for (int i = 0; i <= 40; i++) { Assert.IsTrue(i != 40); string liveLog = _application.Settings.Logging.LiveLog; if (liveLog.Contains("SSL handshake with client failed.")) { break; } Thread.Sleep(250); } _application.Settings.Logging.EnableLiveLogging(false); }
/// <summary> /// 关闭所有服务 /// </summary> public void CloseServer() { try { //锁定 lock (Dic_ClientSession) { foreach (var item in Dic_ClientSession) { item.Value.Close(); //关闭每一个连接 } Dic_ClientSession.Clear(); //清除字典 } lock (Dic_ClientThread) { foreach (var item in Dic_ClientThread) { item.Value.Abort();//停止线程 } Dic_ClientThread.Clear(); } Flag_Listen = false; TCPSocket.Shutdown(SocketShutdown.Both);//服务端不能主动关闭连接,需要把监听到的连接逐个关闭 if (TCPSocket != null) { TCPSocket.Close(); } } catch (Exception e) { } }
public AsyncReply <bool> Trigger(ResourceTrigger trigger) { if (trigger == ResourceTrigger.Initialize) { TCPSocket listener; if (IP != null) { listener = new TCPSocket(new IPEndPoint(IPAddress.Parse(IP), Port)); } else { listener = new TCPSocket(new IPEndPoint(IPAddress.Any, Port)); } Start(listener); } else if (trigger == ResourceTrigger.Terminate) { Stop(); } else if (trigger == ResourceTrigger.SystemReload) { Trigger(ResourceTrigger.Terminate); Trigger(ResourceTrigger.Initialize); } else if (trigger == ResourceTrigger.SystemInitialized) { Instance.Children <TCPFilter>().Then(x => filters = x); } return(new AsyncReply <bool>(true)); }
public AsyncReply <bool> Trigger(ResourceTrigger trigger) { if (trigger == ResourceTrigger.Initialize) { TCPSocket listener; if (ip != null) { listener = new TCPSocket(new IPEndPoint(IPAddress.Parse(ip), port)); } else { listener = new TCPSocket(new IPEndPoint(IPAddress.Any, port)); } Start(listener, timeout, clock); } else if (trigger == ResourceTrigger.Terminate) { Stop(); } else if (trigger == ResourceTrigger.SystemReload) { Trigger(ResourceTrigger.Terminate); Trigger(ResourceTrigger.Initialize); } return(new AsyncReply <bool>(true)); }
public Client(TCPSocket sock) { Log.Info("Client", "Creating new connection to EVEmu Server"); connection = new TCPSocket(26000, false); if (connection.Connect("mmoemulators.com") == false) { Log.Error("Client", "Cannot connect to EVEmu Server on port 25999"); CloseConnection(); return; } clientPacketizer = new StreamPacketizer(); serverPacketizer = new StreamPacketizer(); socket = sock; serverReceive = new AsyncCallback(ServerAsyncReceive); clientReceive = new AsyncCallback(ClientAsyncReceive); // Give time to the socket Thread.Sleep(2000); AsyncState serverState = new AsyncState(); connection.Socket.BeginReceive(serverState.buffer, 0, 8192, SocketFlags.None, serverReceive, serverState); AsyncState clientState = new AsyncState(); socket.Socket.BeginReceive(clientState.buffer, 0, 8192, SocketFlags.None, clientReceive, clientState); }
//static void SetPortForward(int port) //{ // try // { // var discoverer = new NatDiscoverer(); // var cts = new CancellationTokenSource(10000); // var device = discoverer.DiscoverDeviceAsync(PortMapper.Upnp, cts).Result; // device.CreatePortMapAsync(new Mapping(Protocol.Udp, 5001, port, "Portunus")).Wait(); // } // catch // { // Console.Write(' '); // } //} static async void StartTCPClient() { TCPSocket socket = new TCPSocket(); new Thread(() => { socket.StartListening(config.Client.Port); }); socket.Send(config.Servers[0].Address, config.Servers[0].Port, "Hello Server 1, this is the client"); while (true) { try { socket.Send(config.Client.Address, config.Client.Port, "Hello Client, this is the host"); Thread.Sleep(500); } catch (Exception ex) { Console.WriteLine(ex.Message); } } }
private void HandleKeyInstruct(KeyInstructMessage msg) { var srcAddress = IPAddress.Parse(_config.TCPServerAddress); var srcPort = Int32.Parse(_config.TCPServerPort); var instructionSet = msg.Instructions[_config.ID]; foreach (var instruction in instructionSet) { var dstAddress = IPAddress.Parse(instruction.Address); var dstPort = Int32.Parse(instruction.Port); using (var tcpSocket = new TCPSocket( srcAddress, srcPort, dstAddress, dstPort)) { var keys = _keys.Take(instruction.KeyCount).ToList(); _keys.RemoveRange(0, keys.Count); var keyDistribute = new KeyDistributeMessage() { SourceID = _config.ID, DestinationID = Constants.NULL_DESTINATION, Keys = keys }; SendMessage(keyDistribute, tcpSocket); } } _t.Stop(); _leaveFinished = true; }
private void HandleKeyInstruct(KeyInstructMessage msg) { if (!msg.Instructions.ContainsKey(_config.ID)) { return; } var instructionSet = msg.Instructions[_config.ID]; foreach (var instruction in instructionSet) { int count = instruction.KeyCount; var keys = _processor.Get(count).ToList(); var srcAddress = IPAddress.Parse(_config.TCPServerAddress); var srcPort = Int32.Parse(_config.TCPServerPort); var dstAddress = IPAddress.Parse(instruction.Address); var dstPort = Int32.Parse(instruction.Port); using (var tcpSocket = new TCPSocket( srcAddress, srcPort, dstAddress, dstPort)) { var distMsg = new KeyDistributeMessage() { SourceID = _config.ID, DestinationID = Constants.NULL_DESTINATION, Keys = keys }; SendMessage(distMsg, tcpSocket); } } }
public bool connect()//通过按键connect { if (TCPSocket.Connect()) { isConnect = true; } return(isConnect); }
private void Awake() { Instance = this; if (tCPSocket == null) { tCPSocket = gameObject.AddComponent <TCPSocket>(); } }
public void TestLongSMTPDataSessionIncludingNewline() { long memoryUsage = Shared.GetCurrentMemoryUsage(); _application.Settings.MaxMessageSize = 0; TCPSocket socket = new TCPSocket(); socket.Connect(25); socket.Receive(); socket.Send("HELO test.com\r\n"); socket.Receive(); // Build a large string... StringBuilder sb = new StringBuilder(); sb.Append("A01"); for (int i = 0; i < 10000; i++) { sb.Append("01234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890\r\n"); } int length = sb.Length; sb.Append(Environment.NewLine); socket.Send("MAIL FROM: [email protected]\r\n"); socket.Receive(); socket.Send("RCPT TO: [email protected]\r\n"); socket.Receive(); socket.Send("DATA\r\n"); socket.Receive(); for (int i = 0; i < 100; i++) { Shared.AssertLowMemoryUsage(memoryUsage + 30); try { socket.Send(sb.ToString()); } catch (Exception) { return; } } socket.Send("\r\n.\r\n"); string result = socket.Receive(); Assert.IsTrue(result.StartsWith("250")); socket.Send("QUIT\r\n"); result = socket.Receive(); socket.Disconnect(); POP3Simulator.AssertMessageCount(_domain.Accounts[0].Address, "test", 1); }
public async Task Execute(TCPSocket h) { this.handler = h; var buff = new byte[1024]; await handler.ReceiveData(buff); await Respond( await GetData(buff)); handler.Dispose(); }
private void Send(byte[] data, TCPSocket to) { byte[] packet = new byte[data.Length + 4]; Array.Copy(data, 0, packet, 4, data.Length); Array.Copy(BitConverter.GetBytes(data.Length), packet, 4); to.Send(packet); }
public void TestConnection() { for (int i = 0; i < 2500; i++) { TCPSocket socket = new TCPSocket(); Assert.IsTrue(socket.CanConnect(25)); } }
public void Setup() { lastReceivedString = ""; listener = new TcpListener(IPAddress.Parse("127.0.0.1"), 54540); listener.Start(); client = new TcpClient("127.0.0.1", 54540); acceptedClient = listener.AcceptTcpClient(); put = new TCPSocket(acceptedClient, this); }
public void TestConnections() { TCPSocket oSocket = new TCPSocket(); // Make sure an IP range exists. RemoveIPRanges(); if (_ipRanges.Count == 0) { AddIPRange(); } if (!oSocket.CanConnect(25)) { throw new Exception("ERROR: Cannot connect to port 25"); } if (!oSocket.CanConnect(110)) { throw new Exception("ERROR: Cannot connect to port 110"); } if (!oSocket.CanConnect(143)) { throw new Exception("ERROR: Cannot connect to port 143"); } RemoveIPRanges(); // Now it shouldn't be possible to connect. if (oSocket.CanConnect(25)) { throw new Exception("ERROR: Cannot connect to port 25"); } if (oSocket.CanConnect(110)) { throw new Exception("ERROR: Cannot connect to port 110"); } if (oSocket.CanConnect(143)) { throw new Exception("ERROR: Cannot connect to port 143"); } AddIPRange(); // Now it should be possible to connect again. if (!oSocket.CanConnect(25)) { throw new Exception("ERROR: Cannot connect to port 25"); } if (!oSocket.CanConnect(110)) { throw new Exception("ERROR: Cannot connect to port 110"); } if (!oSocket.CanConnect(143)) { throw new Exception("ERROR: Cannot connect to port 143"); } }
public void TestLongSMTPDataSessionWithoutNewline() { long memoryUsage = Shared.GetCurrentMemoryUsage(); TCPSocket socket = new TCPSocket(); socket.Connect(25); socket.Receive(); socket.Send("HELO test.com\r\n"); socket.Receive(); // Build a large string... StringBuilder sb = new StringBuilder(); sb.Append("A01"); for (int i = 0; i < 10000; i++) { sb.Append("01234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890"); } int length = sb.Length; socket.Send("MAIL FROM: [email protected]\r\n"); socket.Receive(); socket.Send("RCPT TO: [email protected]\r\n"); socket.Receive(); socket.Send("DATA\r\n"); socket.Receive(); for (int i = 0; i < 1000; i++) { Shared.AssertLowMemoryUsage(memoryUsage + 30); try { socket.Send(sb.ToString()); } catch (Exception) { return; } } socket.Send("\r\n.\r\n"); string result = socket.Receive(); Assert.IsTrue(result.StartsWith("554 Too long line was received. Transmission aborted.")); socket.Send("QUIT\r\n"); result = socket.Receive(); socket.Disconnect(); }
public Connection(TCPSocket sock) { socket = sock; packetizer = new StreamPacketizer(); thr = new Thread(Run); if (sock.Blocking == true) { sock.Blocking = false; } }
private void createNewStack(TcpClient client, int portID) { ICommand user = realm.AddUser(); Codec newCodec = new Codec(user); Packetiser newPacketiser = new Packetiser(newCodec, "\r\n"); TCPSocket newSocket = new TCPSocket(client, newPacketiser); packetisers.Add(newPacketiser); sockets.Add(newSocket); codecs.Add(newCodec); }
/* * const int Server_Port = 5001; * const string SERVER_IP = "69.6.36.79"; * * const int CLIENT_PORT_NO = 5001; * const string CLIENT_SERVER_IP = "84.255.45.106"; * * const int Source_PORT_NO = 5001; * const string Source_SERVER_IP = "18.223.23.99"; */ static async void StartTCPClient() { TCPSocket socket = new TCPSocket(); socket.StartListening(config.Servers[0].Port); UDPSocket sock = new UDPSocket(); await sock.StartListening(config.Servers[0].Port); }
// Use this for initialization void Start() { // 底层 自动分配一个端口号 Socket client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); // IPEndPoint endPoint = new IPEndPoint(IPAddress.Any, 18001); // client.Bind(endPoint); tcpSocket = new TCPSocket(client, 1024, true); }
public static async Task GetFile(string path, string filename) { path += filename; IPEndPoint ipPoint = new IPEndPoint(IPAddress.Parse(ConfigurationManager.AppSettings["Ip"].ToString()), int.Parse(ConfigurationManager.AppSettings["Port"].ToString())); using (var socket = new TCPSocket(StaticData.MyAddress, ipPoint)) { await socket.Connect(); var bytePath = ASCIIEncoding.ASCII.GetBytes(filename.ToArray()); var toSend = new byte[bytePath.Length + 1]; toSend[0] = 77; for (int i = 0; i < bytePath.Length; i++) { toSend[i + 1] = bytePath[i]; } await socket.SendData(toSend); var temp = new byte[12]; await socket.ReceiveData(temp); var length = BitConverter.ToInt64(temp, 0); if (length == 0) { MessageBox.Show("File doesn't exist"); return; } int packageSize = BitConverter.ToInt32(temp, 8); var data = new byte[packageSize]; using (FileStream file = new FileStream(path, FileMode.Create, FileAccess.Write)) { int iter = (int)((length) / packageSize); for (int i = 0; i < iter; i++) { data = new byte[packageSize]; await socket.ReceiveData(data); await file.WriteAsync(data, 0, packageSize); await socket.SendData(new byte[] { 255 }); } var bytes = await socket.ReceiveData(data); await file.WriteAsync(data, 0, bytes); } } }
static void Main(string[] args) { Log.Init("proxy"); waiting = new List <Connection>(); Log.Trace("Main", "Connecting to Database"); if (Database.Database.Init() == false) { while (true) { Thread.Sleep(1); } } Log.Debug("Main", "Connected to database sucesfull"); Log.Trace("Main", "Reseting Solar Systems' status"); Log.Trace("Main", "Starting listener on port 26000"); listener = new TCPSocket(26000, false); if (listener.Listen(int.MaxValue) == false) { Log.Error("Main", "Cannot listen on port 26000"); while (true) { ; } } Log.Debug("Main", "Listening on port 26000"); LoginQueue.Start(); // Add two nodes to the NodeManager NodeManager.AddNode(null); NodeManager.AddNode(null); while (true) { Thread.Sleep(1); TCPSocket con = listener.Accept(); if (con != null) { Connection tmp = new Connection(con); tmp.Start(); waiting.Add(tmp); } } }
public void AuthShouldUpdateLastLogonTime() { hMailServer.Account account = SingletonProvider<Utilities>.Instance.AddAccount(_domain, "*****@*****.**", "test"); DateTime lastLogonTimeBefore = Convert.ToDateTime(account.LastLogonTime); System.Threading.Thread.Sleep(1000); TCPSocket sock = new TCPSocket(); sock.Connect(25); Assert.IsTrue(sock.Receive().StartsWith("220")); sock.Send("EHLO test.com\r\n"); Assert.IsTrue(sock.Receive().StartsWith("250")); string base64EncodedUsername = EncodeBase64("*****@*****.**"); sock.Send("AUTH LOGIN " + base64EncodedUsername + "\r\n"); Assert.IsTrue(sock.Receive().StartsWith("334")); sock.Send(EncodeBase64("test") + "\r\n"); Assert.IsTrue(sock.Receive().StartsWith("235")); DateTime lastLogonTimeAfter = Convert.ToDateTime(SingletonProvider<Utilities>.Instance.GetApp().Domains[0].Accounts[0].LastLogonTime); Assert.AreNotEqual(lastLogonTimeBefore, lastLogonTimeAfter); }
public void TestConnections() { TCPSocket oSocket = new TCPSocket(); // Make sure an IP range exists. RemoveIPRanges(); if (_ipRanges.Count == 0) AddIPRange(); if (!oSocket.CanConnect(25)) throw new Exception("ERROR: Cannot connect to port 25"); if (!oSocket.CanConnect(110)) throw new Exception("ERROR: Cannot connect to port 110"); if (!oSocket.CanConnect(143)) throw new Exception("ERROR: Cannot connect to port 143"); RemoveIPRanges(); // Now it shouldn't be possible to connect. if (oSocket.CanConnect(25)) throw new Exception("ERROR: Cannot connect to port 25"); if (oSocket.CanConnect(110)) throw new Exception("ERROR: Cannot connect to port 110"); if (oSocket.CanConnect(143)) throw new Exception("ERROR: Cannot connect to port 143"); AddIPRange(); // Now it should be possible to connect again. if (!oSocket.CanConnect(25)) throw new Exception("ERROR: Cannot connect to port 25"); if (!oSocket.CanConnect(110)) throw new Exception("ERROR: Cannot connect to port 110"); if (!oSocket.CanConnect(143)) throw new Exception("ERROR: Cannot connect to port 143"); }
public void TestOnClientConnectVBScript() { hMailServer.Application app = SingletonProvider<Utilities>.Instance.GetApp(); hMailServer.Scripting scripting = app.Settings.Scripting; string script = "Sub OnClientConnect(oClient) " + Environment.NewLine + " EventLog.Write(\"Port: \" & oClient.Port) " + Environment.NewLine + " EventLog.Write(\"Address: \" & oClient.IPAddress) " + Environment.NewLine + " EventLog.Write(\"Username: \" & oClient.Username) " + Environment.NewLine + "End Sub" + Environment.NewLine + Environment.NewLine; File.WriteAllText(scripting.CurrentScriptFile, script); scripting.Enabled = true; scripting.Reload(); string eventLogFile = app.Settings.Logging.CurrentEventLog; if (File.Exists(eventLogFile)) File.Delete(eventLogFile); TCPSocket socket = new TCPSocket(); Assert.IsTrue(socket.CanConnect(25)); // Check that the message exists string message = Utilities.ReadExistingTextFile(eventLogFile); Assert.IsNotEmpty(message); Assert.IsTrue(message.Contains("Port: 25")); Assert.IsTrue(message.Contains("Address: 127")); Assert.IsTrue(message.Contains("Username: \"")); // Should be empty, Username isn't available at this time. }
public void TestPortInUse() { hMailServer.Application application = SingletonProvider<Utilities>.Instance.GetApp(); application.Stop(); var serverSocket = new ServerSocket(1, 25); serverSocket.StartListen(); application.Start(); TCPSocket sock = new TCPSocket(); // make sure it's possible to connect to the non blocked port. sock.CanConnect(110); sock.CanConnect(143); //let this our temp server die. sock.CanConnect(25); // make sure that hMailServer reported an error during start up because the ports were blocked. Utilities.AssertReportedError(); // restart hMailServer again. everything is now back to normal. application.Stop(); application.Start(); sock.CanConnect(25); }
public void TestSMTPServerAuthPlain() { _settings.AllowSMTPAuthPlain = true; TCPSocket sock = new TCPSocket(); sock.Connect(25); Assert.IsTrue(sock.Receive().StartsWith("220")); sock.Send("EHLO test.com\r\n"); Assert.IsTrue(sock.Receive().StartsWith("250")); sock.Send("AUTH PLAIN\r\n"); Assert.IsTrue(sock.Receive().StartsWith("334")); string str = "\t" + GetUsername() + "\t" + GetPassword(); sock.Send(EncodeBase64(str) + "\r\n"); Assert.IsTrue(sock.Receive().StartsWith("535")); EnsureNoPassword(); }
public void TestSMTPServerAuthLoginUsernameAsThirdParameter() { _settings.AllowSMTPAuthPlain = true; TCPSocket sock = new TCPSocket(); sock.Connect(25); Assert.IsTrue(sock.Receive().StartsWith("220")); sock.Send("EHLO test.com\r\n"); Assert.IsTrue(sock.Receive().StartsWith("250")); string base64EncodedUsername = EncodeBase64(GetUsername()); sock.Send("AUTH LOGIN " + base64EncodedUsername + "\r\n"); Assert.IsTrue(sock.Receive().StartsWith("334")); sock.Send(EncodeBase64(GetPassword()) + "\r\n"); Assert.IsTrue(sock.Receive().StartsWith("535")); EnsureNoPassword(); }
public void TestEHLOKeywords() { hMailServer.Application application = SingletonProvider<Utilities>.Instance.GetApp(); hMailServer.Settings settings = _settings; settings.HostName = "examplify.com"; TCPSocket socket = new TCPSocket(); Assert.IsTrue(socket.Connect(25)); string result = socket.Receive(); socket.Send("EHLO example.com\r\n"); result = socket.Receive(); socket.Disconnect(); Assert.IsTrue(result.Contains("250-" + settings.HostName)); }