日期:2014-05-17  浏览次数:21388 次

C#winform窗体程序如何既做服务器又做客户端??
纯新人,vs2008+XP+C#窗体环境
A程序,既做服务器,又要做客户端
做服务器的时候,用多线程监听了一堆客户端
做客户端的时候,要跟另外一台服务器B通信,接收B发过来的各种指令,然后进行操作
由于做客户端的时候,A也要启动多线程进行操作

private void Form_Load(object sender, EventArgs e)
        {
            try
            {
                //作为服务器开启端口监听线程
                StartServerListening();
                //作为客户端连接服务器
                ConnectServerB();
            }
            catch (Exception ex)
            {
                MessageBox.Show("错误信息:" +ex.Message);
            }
        }

这样写,会不会StartServerListening()执行完才执行后面客户端的连接?因为StartServerListening()里面是多线程操作,会持续运行

这个步骤不太懂,请指点一下,我希望StartServerListening()和ConnectServerB()能几乎同时运行,这样就能既做服务器又做客户端了。



------解决方案--------------------
客户端跟服务端的项目是分开的,但是可以放在同一个解决方案中
------解决方案--------------------
解决方案->属性->选中多启动项目
------解决方案--------------------
可以做的呀,这两个不冲突。现实很多例子
比如网关服务端就是这样。 他是客户端的直连服务端 又是业务处理服务端的客户端
像这样 Client<-->Gateway Server<-->BLL Server 
我们都这么干
你说的A也要启动多线程进行操作 多线程是在服务端模式做多线程,客户端模式只要一个线程
相当于你的那个服务端的要开的线程数 即N+1 N为服务端的线程 1为客户端线程
你要把服务端模式与客端模式的代码全改为异步模式就可以同时运行。