- // The socket that we will be reading data from
- //
- Socket socket = null;
-
- //
- // OnRegisterService
- //
- // The name that we are passed might be different than the
- // name we called Register with. So we hold onto this name
- // rather than the name we Register with.
- //
- // This is called (indirectly) from OnRegisterReply().
- //
- private void
- OnRegisterService
- (
- String name
- )
- {
- myName = name;
- }
-
- //
- // OnAddPeer
- //
- // Called when DNSServices detects a new P2P Chat peer has
- // joined.
- //
- // This is called (indirectly) from OnBrowseReply()
- //
- private void
- OnAddPeer
- (
- PeerData peer
- )
- {
- comboBox1.Items.Add(peer);
-
- if (comboBox1.Items.Count == 1)
- {
- comboBox1.SelectedIndex = 0;
- }
- }
-
- //
- // OnRemovePeer
- //
- // Called when DNSServices detects a P2P peer has left
- // the network
- //
- // This is called (indirectly) from OnBrowseReply()
- //
- private void
- OnRemovePeer
- (
- PeerData peer
- )
- {
- comboBox1.Items.Remove(peer);
- }
-
- //
- // OnResolveService
- //
- // Called when DNSServices has resolved a service.
- //
- // This is called (indirectly) from OnResolveService()
- //
- private void
- OnResolveService
- (
- ResolveData data
- )
- {
- resolver.Dispose();
-
- PeerData peer = (PeerData) comboBox1.SelectedItem;
-
- peer.Port = data.Port;
-
- try
- {
- resolver = DNSService.QueryRecord(0, 0, data.HostName, /* ns_t_a */ 1, /* ns_t_c */ 1, new DNSService.QueryRecordReply(OnQueryRecordReply));
- }
- catch
- {
- MessageBox.Show("QueryRecord Failed", "Error");
- Application.Exit();
- }
- }
-
- //
- // OnResolveAddress
- //
- // Called when DNSServices has finished a query operation
- //
- // This is called (indirectly) from OnQueryRecordReply()
- //
- private void
- OnResolveAddress
- (
- System.Net.IPAddress address
- )
- {
- resolver.Dispose();
-
- PeerData peer = (PeerData) comboBox1.SelectedItem;
-
- peer.Address = address;
- }
-
- //
- // OnReadMessage
- //
- // Called when there is data to be read on a socket
- //
- // This is called (indirectly) from OnReadSocket()
- //
- private void
- OnReadMessage
- (
- String msg
- )
- {
- int rgb = 0;
-
- for (int i = 0; i < msg.Length && msg[i] != ':'; i++)
- {
- rgb = rgb ^ ((int) msg[i] << (i % 3 + 2) * 8);
- }
-
- Color color = Color.FromArgb(rgb & 0x007F7FFF);
-
- richTextBox1.SelectionColor = color;
-
- richTextBox1.AppendText(msg + "\n");
- }
-
- //
- // OnRegisterReply
- //
- // Called by DNSServices core as a result of DNSService.Register()