在上一篇中已经介绍了利用Socket建立服务端和客户端进行通信,如果需要 的朋友可访问《Socket网络编程学习笔记(2):面向连接的Socket》。在本篇 中,将利用C#套接字的助手类来简化Socket编程,使得刚刚接触到网络编程的 朋友们更容易上手。
跟上篇一样,通过C#套接字的助手类来编程同样分 服务端和客户端。
一、服务端侦听模式
1、创建套接字与 IPEndPoint绑定,并设置为侦听模式。
1//创建IPEndPoint实例
2 IPEndPoint ipep = new IPEndPoint(IPAddress.Any, 6001);
3 /**//*
4 //创建一个套接字
5 serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
6 //将所创建的套 接字与IPEndPoint绑定
7 serverSocket.Bind(ipep);
8 //设置套接字为收听模式
9 serverSocket.Listen(10);
10 */
11 serverTcp = new TcpListener(ipep);
12 serverTcp.Start ();
其中注释掉的部分是利用Socket来创建侦听,这里我们可以 看到用套接字助手类只通过二行就可以建立起侦听,而且如果要更方便一些,可 以不指定IPEndPoint,单单指定端口就可以了,如:
1serverTcp = new TcpListener(6001);
2 serverTcp.Start ();
2、侦听并获取接入的客户Socket连接
1while (true)
2 {
3 try
4 {
5 //在套接字上接收接入的连接
6 //clientSocket = serverSocket.Accept();
7 clientTcp = serverTcp.AcceptTcpClient();
8 clientThread = new Thread(new ThreadStart (ReceiveData));
9 clientThread.Start();
10 }
11 catch (Exception ex)
12 {
13 MessageBox.Show ("listening Error: " + ex.Message);
14 }
15 }
在这里用clientTcp = serverTcp.AcceptTcpClient();来接收连接的TcpClient对象,我们了可以通过
1clientSocket = serverTcp.AcceptSocket();
来 接收一个Socket对象,如果接收的是一个Socket对象,那么接下来的接收和发送 信息跟上篇一样,如果接收的是TcpClient对象,那么我们来看一下如何来接收 和发送信息: