您的位置:首页 > 理论基础 > 计算机网络

【C#食谱】【杭帮菜】菜单1:写一个TCP服务端

2008-04-21 22:23 435 查看
问题:

你需要写一个服务端去监听从某一个端口进来的一个TCP客户端的请求。然后,这些请求可以在服务端被处理,并且每一个响应都可以被发送到TCP客户端。我将在下一个“菜”中介绍怎么样创建一个TCP客户端和服务端进行交互。

解决方法:

我们创建一个MyTcpServer的类来监听从一个端口进来的基于TCP终端的请求:

class MyTcpServer

public void Listen()

public void StopListening()

class Program

{

static MyTcpServer server = null;

static void Main(string[] args)

{

// 在另一个线程上运行服务端

ThreadPool.QueueUserWorkItem(RunServer);

Console.WriteLine("Press Esc to stop the server…?");

ConsoleKeyInfo cki;

while (true)

{

cki = Console.ReadKey();

if (cki.Key == ConsoleKey.Escape)

break;

}

}

static void RunServer(object stateInfo)

{

// 启动

server = new MyTcpServer(IPAddress.Loopback, 55555);

server.Listen();

}

}

具体的输出将在下一个配套的菜(写一个TCP客户端)中再发布出来。

讨论:

传输控制协议(TCP)是目前Internet上被广泛使用的协议。TCP协议是对从一个终端到另一个终端正确发生数据包负责的(有连接的)。

它使用Internet协议(IP)去传输数据。IP从端到端的获取数据包;TCP检查数据包是否被正确地发送了,有没有丢包,有没有乱序;如果有,TCP会使丢失的或损害的包重新发送。

TCPServer类是处理从基于TCP的客户端发送过来的请求的基本服务端机制。

MyTcpServer类使用传进来的IP地址和端口号作为参数,并且在Listen方法中在该IP地址和端口上创建一个TcpListener。

一旦创建成功,TcpListener.Start方法被调用来启动服务器。个阻塞的AcceptTcpClient方法被调用来监听来自基于TCP的客户端的请求。一旦建立连接,ProcessClient方法将执行。

在这个方法中,服务器从客户端读取数据,并返回一个可信的响应。服务器通过NetworkStream.Close方法和TcpClient.Close方法来中断和客户端的连接。

当StopListening方法被调用的时候,服务器停止监听。StopListening方法通过调用TcpListener.Stop方法来使服务器掉线。

写一个TCP客户端
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐