日期:2014-05-18  浏览次数:20985 次

客户端如何通过服务端跟其他客户端发送信息
目前有2个固定客户端
要做个服务端为中转站
把客户端1发送的信息通过服务端发送给客户端2
此过程不可逆转
要判断服务端接收到的是否是客户端1发过来的信息,然后再发送给客户端2。
目前已经实现了客户端1发送到服务端,
请问如何在服务端内做判断再发送给客户端2

客户端1
C# code

 public class Sco
        {
            string id;//按钮ID

            public string Id
            {
                get { return id; }
                set { id = value; }
            }
            Socket socketIp;

            public Socket SocketIp
            {
                get { return socketIp; }
                set { socketIp = value; }
            }
        }
        private void Sending(IAsyncResult rec_socket)
        {
            Sco s = new Sco();
            s = (Sco)rec_socket.AsyncState;
            try
            {
                if (s.SocketIp.Connected)
                {
                    byte[] msgBuff = Encoding.UTF8.GetBytes(s.Id);
                    s.SocketIp.Send(msgBuff);
                }
                else
                {
                    Console.WriteLine("Error!", "Error!");
                }
            }
            catch
            {
                Console.WriteLine("Error!", "Error!");
            }

        }
        private void button1_Click(object sender, EventArgs e)
        {
            Sco s = new Sco();
            s.Id = ((Button)sender).Text;
            IPEndPoint epServer = new IPEndPoint(IPAddress.Parse("192.168.2.23"), 9000);
            Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            s.SocketIp = socket;
            socket.BeginConnect(epServer, new AsyncCallback(Sending), s);
        }




------解决方案--------------------
ding
两个客户端先向服务端发个请求,然后服务器端记录两IP信息,这样两个客户端就能通信了。