コード例 #1
0
		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 ();
		}
コード例 #2
0
 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 ();
 }
コード例 #3
0
 // 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;
 }
コード例 #4
0
 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));
         }
     }
 }
コード例 #5
0
 public override void PublishFailure (NSNetService sender, NSDictionary errors)
 {
     Log (String.Format ("{0} publish failed", sender.Name));
 }
コード例 #6
0
 public UIAirPlayActivity(NSNetService service)
 {
     device = service;
 }