public virtual void Connect(IPv4AddressPort remoteAddress) { RemoteAddress = remoteAddress; Client.Connect(RemoteAddress.AddressAsIPEndPoint); if (SocketConnected != null) { SocketConnected(this); } ConnectTime = DateTime.UtcNow; BeginReceive(); }
public override object ConvertFrom(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value) { IPv4AddressPort address; string strvalue = value as string; if (strvalue == null || IPv4AddressPort.TryParse(strvalue, out address) == false) { address = new IPv4AddressPort(); } return(address); }
public bool Open(LogLevel logLevel, String filename, UInt32 flags, IPv4AddressPort multicastAddress) { if (filename != null) { _fileName = filename; } /** setting the flags will open all our output sources */ _logging = SetFlags(logLevel, flags); return(_logging); }
public static IPv4AddressPort GetIPv4AddressPort(Object address) { IPv4AddressPort ret; if (Convert.IsDBNull(address)) { ret = new IPv4AddressPort(); } else { ret = new IPv4AddressPort(address.ToString()); } return(ret); }
public bool ClientExists(IPv4AddressPort address) { bool bRet; _clientLock.Lock(); try { bRet = _clientList.ContainsKey(address.Address); } finally { _clientLock.Unlock(); } return(bRet); }
public void AddListener(IPv4AddressPort address) { if (_listeners.ContainsKey(address.Port)) { throw new Exception(String.Format("Attempt to add listener port {0}. Port already exists", address.Port)); } TcpListener listener = new TcpListener(address.AddressAsIPEndPoint); _listeners.Add(address.Port, listener); if (State == ThreadState.Started) { StartListener(listener); } }
public static bool IsListenerAtAddress(IPv4AddressPort address) { TcpClient client = new TcpClient(); ListenerTest test = new ListenerTest(client); try { client.BeginConnect(address.AddressAsIPv4Address.AddressAsIPAddress, address.Port, new AsyncCallback(ListenerTesterConnectCallback), test); if (test.WaitEvent.Wait(30 * 1000) == false) { client.Close(); } } catch (Exception) {} return(test.IsConnected); }
// // Constructor // /// <summary> /// Create a new TcpClient with a connected TCPClient /// </summary> /// <param name="tcpClient"></param> protected TcpConnectedClient(TcpClient tcpClient, TcpListener listener, TcpServer parent) { _tcpClient = tcpClient; _listenerAddress = new IPv4AddressPort((IPEndPoint)listener.LocalEndpoint); // Set Reference To Parent _server = parent; // Set Local and Remote Addresses _localAddress = new IPv4AddressPort(((IPEndPoint)_tcpClient.Client.LocalEndPoint).Address.ToString() + ":" + ((IPEndPoint)_tcpClient.Client.LocalEndPoint).Port.ToString()); _remoteAddress = new IPv4AddressPort(((IPEndPoint)_tcpClient.Client.RemoteEndPoint).Address.ToString() + ":" + ((IPEndPoint)_tcpClient.Client.RemoteEndPoint).Port.ToString()); // Server will start our I/O after client is fully constructed _receiveBuffer = new byte[PACKET_MAX_LEN]; _connectTime = DateTime.UtcNow; }
/// <summary> /// Sends data to an existing open client connection. /// </summary> /// <returns>Number of bytes sent or -1 if an Exception occurred</returns> public int SendToExistingConnection(IPv4AddressPort address, byte[] packet, int offset, int size) { int retVal = 0; // Find The Existing Client By IPAddress:Port TcpConnectedClient client; try { _clientLock.Lock(); if (_clientList.TryGetValue(address.Address, out client) == false) { client = null; } } finally { _clientLock.Unlock(); } try { if (client != null) { // Client Found... retVal = SendToExistingConnection(client, packet, offset, size); } else { // Throw Exception If Client Does Not Exists throw new Exception("Cannot send because the client connection does not exist."); } } catch (Exception e) { // Notify Caller Of Exception RaiseException(e); retVal = -1; // Indicate An Error Occurred } finally { _clientLock.Unlock(); } return(retVal); }
public TcpServer(IPv4AddressPort address, String name) : this(name) { AddListener(address); }
public static bool IsReasonableEndpoint(IPv4AddressPort address) { return(address.Port != 0 && address.AddressAsIPv4Address.IsEmpty == false); }
public virtual void BeginConnect(IPv4AddressPort remoteAddress) { RemoteAddress = remoteAddress; _connectResult = Client.BeginConnect(remoteAddress.AddressAsIPv4Address.AddressAsIPAddress, remoteAddress.Port, new AsyncCallback(ConnectCallback), this); }