有一台机器始终发XML信息给192.168.2.8:8888这个端口,现在我需要将这个端口的信息读取出来,不知道如何处理,好多人建议我用订阅者模式,我不知道如何写?
我在192.168.2.8这台机器上如何读取?在其他IP机器上如何读取?俺需要源码啊。

解决方案 »

  1.   


    private void StartListenling()
            {            Socket listener = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);            IPAddress address = IPAddress.Parse("192.168.2.8");
                IPEndPoint localEP = new IPEndPoint(address, 8888);
                listener.Bind(localEP);
                listener.Listen(100);            while (true)
                {
                    Socket socket = listener.Accept();
                    StartSend(socket);
                    //this.textBox2.Text += msg;
                }
            }        private void StartSend(object socket)
            {
                Thread threat = new Thread(new ParameterizedThreadStart(StartSendThread));
                threat.IsBackground = true;
                threat.Start(socket);
            }
            private void StartSendThread(object sockets)
            {
                Socket socket = sockets as Socket;
                int read = 0;
                string msg = string.Empty;
                int i = 0;
                byte[] bytes = new byte[4096];
                bool isSender = false;
                try
                {
                    while (true)
                    {
                        read = socket.Receive(bytes, 0, bytes.Length, SocketFlags.None);
                        if (read == 0)
                        { break; }
                        
                            msg += Encoding.UTF8.GetString(bytes, 0, bytes.Length);//获取接收到的数据
                           
                    }
                }
                catch (Exception ex)
                { }        }差不多就是上面的意思,监听8888端口,获取MESSAGE