一步一步教你使用.net进行Socket通信4

8、 在SocketFactory类中加入StartServer方法。当执行此方法时,初始化_ serverListenThread并在此线程中开始侦听网络连接



+展开
-C#
 1public void StartServer(int port) {
 2
 3              TcpListener listener = new TcpListener(IPAddress.Any, port);
 4
 5              listener.Start();
 6
 7 
 8
 9              Server server = new Server(listener);
10
11              _serverListenThread = new System.Threading.Thread(new System.Threading.ThreadStart(server.Start));
12
13              _serverListenThread.Start();
14
15}
16

9、

下面我们来测试此线程是否工作。
在SocketServerTest的Form1的Form1_Load事件中加入如下代码。



1SocketLibrary.SocketFactory factory = new SocketLibrary.SocketFactory();
2
3factory.StartServer(1979);
4
运行程序,可以看出Form1显示出来了。但我们并没有看到监听启动。这是由于我们的监听是在另外一个线程里运行的。我们可以在Server类的Start()函数中加入断点



再次执行程序。可以看到程序会运行到断点处。即开始监听网络连接了。





10、 下面我们另外启动一个VS.NET2003实例,建立一个项目SocketClientTest,并通过添加已存在的项目增加SocketLibrary,增加对此项目的引用。




11、 新建一个Client类。并写上以下源代码



+展开
-C#
1using System;
 2
 3using System.Net;
 4
 5using System.Net.Sockets;
 6
 7 
 8
 9namespace SocketLibrary
10
11{
12
13 
14
15     public class Client
16
17     {
18
19         public const int CONNECTTIMEOUT = 10;
20
21         public Connection _connection;
22
23         public Client()
24
25         {
26
27              
28
29         }
30
31         public static Connection StartClient(IPAddress ipaddress,int port) {
32
33              TcpClient client = new TcpClient();
34
35              client.SendTimeout = CONNECTTIMEOUT;
36
37              client.ReceiveTimeout = CONNECTTIMEOUT;
38
39 
40
41              client.Connect(ipaddress,port);
42
43         }
44
45     }
46
47}

加支付宝好友偷能量挖...


评论(0)网络
阅读(87)喜欢(0)Asp.Net/C#/WCF