public void TLSend(string msg, MessageTypes type, Socket s) { if (s.Connected) { byte[] data = Message.sendmessage(type, msg); #if DEBUG v("srv sending message type: " + type + " contents: " + msg); v("srv sending raw data size: " + data.Length + " data: " + HexToString(data, data.Length)); #endif try { s.Send(data); } catch (Exception ex) { debug("error sending: " + type.ToString() + " " + msg); debug("exception: " + ex.Message + ex.StackTrace); if (DisconnectOnError) { debug("disconnecting from: " + s.RemoteEndPoint.ToString()); s.Shutdown(SocketShutdown.Both); s.Disconnect(true); } } } }
public long TLSend(MessageTypes type, string m) { // encode byte[] data = Message.sendmessage(type, m); #if DEBUG v("client sending message type: " + type + " contents: " + m); v("client sending raw data size: " + data.Length + " data: " + HexToString(data, data.Length)); #endif int len = 0; try { if (server.Connected) { // send request len = server.Send(data); return(0); } else { retryconnect(); return(0); } } catch (SocketException ex) { debug("exception: " + ex.SocketErrorCode + ex.Message + ex.StackTrace); retryconnect(); } catch (Exception ex) { debug("error sending: " + type + " " + m); debug(ex.Message + ex.StackTrace); } return((long)MessageTypes.UNKNOWN_ERROR); }
void sendtick(Tick k) { byte[] data = Message.sendmessage(MessageTypes.TICKNOTIFY, TickImpl.Serialize(k)); for (int i = 0; i < client.Count; i++) // send tick to each client that has subscribed to tick's stock { if ((client[i] != null) && stocks[i].Contains(k.symbol)) { TLSend(data, i); } } }
public Providers [] TLFound() { v("Searching provider list..."); v("clearing existing list of available providers"); servers.Clear(); // build name request byte[] nrequest = Message.sendmessage(MessageTypes.BROKERNAME, string.Empty); // get name for every server provided by client foreach (IPEndPoint ep in serverip) { try { v("Attempting to connect to: " + ep.ToString()); // attempt to connect Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); s.Connect(ep); // request name s.Send(nrequest); // try to get result byte[] data = new byte[s.ReceiveBufferSize]; int len = s.Receive(data); int pcode = (int)Providers.Unknown; try { pcode = BitConverter.ToInt32(data, 0); Providers p = (Providers)pcode; if (p != Providers.Unknown) { debug("provider: " + p.ToString() + " at: " + ep.ToString()); servers.Add(p); } else { debug("skipping unknown provider at: " + ep.ToString()); } } catch (Exception ex) { debug("error adding providing at: " + ep.ToString() + " pcode: " + pcode); debug(ex.Message + ex.StackTrace); } } catch (Exception ex) { debug("exception connecting to server: " + ep.ToString()); debug(ex.Message + ex.StackTrace); } } v("found " + servers.Count + " providers."); return(servers.ToArray()); }