【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客户端的请求。然后,这些请求可以在服务端被处理,并且每一个响应都可以被发送到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客户端
相关文章推荐
- 【C#食谱】【杭帮菜】菜单2:写一个TCP客户端
- 一个简单的TCP客户端、服务端会话程序(C#)
- 【C#食谱】【风味小吃】菜单6:获取一个数字的高字位值或低字位值
- 一个简单的TCP客户端、服务端会话程序(C#)
- C# winfrom TCP 服务端和客户端(链接)
- 【急】c#服务器用套接字与android服务端互通训,要双向的,我自己写了一个,不成功,求例子,求指导,急啊
- C#:一个增强的TcpListener(二)线程池
- 常量,字段,构造方法 调试 ms 源代码 一个C#二维码图片识别的Demo 近期ASP.NET问题汇总及对应的解决办法 c# chart控件柱状图,改变柱子宽度 使用C#创建Windows服务 C#服务端判断客户端socket是否已断开的方法 线程 线程池 Task .NET 单元测试的利剑——模拟框架Moq
- Java基础---Java---网络编程---TCP的传输、客户端和服务端的互访、建立一个文本转换器、编写一个聊天程序
- [转载]C# TCP实现多个客户端与服务端 数据 与 文件的传输
- C#TCPClient应用-一个简单的消息发送和接收
- C# TCP实现多个客户端与服务端 数据 与 文件的传输
- [通信] C# TCP实现多个客户端与服务端 数据 与 文件的传输
- Windows网络编程学习笔记(3) 编写一个TCP服务端
- [C#]使用TcpListener及TcpClient开发一个简单的Chat工具
- 自已C#写的一个通信网络服务端的类
- c#+Winform实现自定义的“复制、粘贴”右键快捷菜单,多个控件共享使用一个右键菜单
- 【C#食谱】【风味小吃】菜单7:把其他进制的数转换为十进制
- 【急】c#服务器用套接字与android服务端互通训,要双向的,我自己写了一个,不成功,求例子,求指导,急啊
- boost asio 实现一个TCP服务端线程池