标题里实在不知道怎么写,本人刚学c#,要做一个B/S模式的小程序,但是遇到点问题。我设这么想的,我要做一个服务器,可以暂时看做简单聊天程序中的服务器,就是用TcpListener监听端口,然后响应客户端请求我要把服务器做成一个WinForm的形式,可以显示已连接的IP,而且有两个按钮:Start--开启服务器,用户可以连接,Stop--关闭服务器,终止所有连接例子找了好多,但是服务器都是用控制台做的,我在WinForm里不会做,我在Start的Click事件中使用While(TRUE),然后程序就死了不知道怎么改,请高手指点,怎么弄。最好有个简单的例子,有解决方法也可以,谢谢了

解决方案 »

  1.   

    告诉你,用webservice或者remoting
    别想着自己写socket了。
      

  2.   

    我在Start的Click事件中使用While(TRUE),然后程序就死了
    ----------------------------------------------------
    不要在主线程处理,界面会被阻塞的。别开线程处理socket
      

  3.   

    remoting有例子么?给个简单的例子可以么?
      

  4.   

    我正在写,可以给你个例子.
    //程序开始运行,监听话机
                        serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                        IPAddress serverIP = IPAddress.Parse(ipaddressnow);
                        IPEndPoint serverhost = new IPEndPoint(serverIP, Convert.ToInt32(ipportnow));
                        serverSocket.Bind(serverhost);
                        serverSocket.Listen(200);
                        
                        while(true)
                        {
                            try
                            {
                                //在套接字上接收接入的连接
                                Socket s = serverSocket.Accept();
                                clientSocket = s;
                                ListenClient lc = new ListenClient(clientSocket);
                                clientThread = new Thread(new ThreadStart(lc.ServerThreadProc));
                                clientThread.Start();
                            }
                            catch (Exception ex)
                            {
                                MessageBox.Show("listening Error: " + ex.Message);
                            }
                        }把接收到的和要处理的东东全部放到ListenClient类里面去处理.然后把信息返回给主线程就可以了.
      

  5.   

    为什么要使用While(true)呢?这个有什么功能,请各位指教!