public override void FoundService (NSNetServiceBrowser sender, NSNetService service, bool moreComing) { Debug.WriteLine (String.Format("Found {0}", service.Name)); if (service.Name.Equals ("Calabash Server")) if (successCallback != null) successCallback (); }
public override void Published (NSNetService sender) { ThreadStart ts = new ThreadStart (delegate { using (var pool = new NSAutoreleasePool ()) { try { string hostName = String.Format ("{0}.local", Dns.GetHostName ()); IPHostEntry hostEntry = Dns.GetHostEntry (hostName); IPAddress serverAddress = hostEntry.AddressList[1]; _controller._tcpServer = new TcpListener (serverAddress, sender.Port); _controller._tcpServer.Start (); Log ("server started"); int maxReadSize = 1024; byte[] requestBuffer = new Byte[maxReadSize]; while (true) { TcpClient connectingClient = _controller._tcpServer.AcceptTcpClient (); using (NetworkStream netStream = connectingClient.GetStream ()) { int size = netStream.Read (requestBuffer, 0, requestBuffer.Length); string request = Encoding.ASCII.GetString (requestBuffer, 0, size); Log (String.Format ("server received: {0}", request)); string response = String.Format ("server echoed: {0}", request); byte[] responseBuffer = Encoding.ASCII.GetBytes (response); netStream.Write (responseBuffer, 0, responseBuffer.Length); Log (response); } connectingClient.Close (); } } catch (SocketException e) { Log (String.Format ("SocketException: {0}, Native Error Code = {0}", e.Message, e.NativeErrorCode)); } } }); Thread t = new Thread (ts); t.Start (); }
// This method is invoked when the application has loaded its UI and its ready to run public override bool FinishedLaunching (UIApplication app, NSDictionary options) { _ns = new NSNetService ("", "_bonjourdemoservice._tcp", UIDevice.CurrentDevice.Name, 9999); _netDel = new NetDelegate (this); _ns.Delegate = _netDel; //BUG: monotouch 3.3.1 has TXTRecordData incorrectly bound to a bool. will be fixed in v.Next //string message = "some message about the service..."; //_ns.TxtRecordData = NSData.FromString(message); _ns.Publish (); window.MakeKeyAndVisible (); return true; }
void CallServer (NSNetService ns) { if (ns != null) { string hostName = ns.HostName; int port = ns.Port; try { TcpClient tcpClient = new TcpClient (hostName, port); using (NetworkStream netStream = tcpClient.GetStream ()) { string hello = "hello from TcpClient"; byte[] sendBuffer = Encoding.ASCII.GetBytes (hello); netStream.Write (sendBuffer, 0, sendBuffer.Length); int maxSize = 1024; byte[] receiveBuffer = new Byte[maxSize]; int length = netStream.Read (receiveBuffer, 0, receiveBuffer.Length); string response = Encoding.ASCII.GetString (receiveBuffer, 0, length); logView.AppendTextLine (response); } tcpClient.Close (); } catch (Exception ex) { logView.AppendTextLine (String.Format ("exception calling server: {0}", ex)); } } }
public override void PublishFailure (NSNetService sender, NSDictionary errors) { Log (String.Format ("{0} publish failed", sender.Name)); }
public UIAirPlayActivity(NSNetService service) { device = service; }