C# Socket异步通信整理

这篇博客详细介绍了C#中使用Socket进行异步通信的过程,包括TCPServer的实现,涉及Bind、Listen、BeginAccept、EndAccept、BeginReceive、EndReceive等关键函数。通过创建Socket,设置监听,启动异步接收和发送数据,实现了客户端和服务器间的通信。博客还展示了完整的代码示例,帮助读者理解异步通信的工作机制。
摘要由CSDN通过智能技术生成

C# Socket异步通信

 

TCPServer  

 

1、使用的通讯通道:socket

 

2、用到的基本功能:

 

Bind, 

 

Listen,

 

BeginAccept

 

EndAccept

 

BeginReceive  

 

EndReceive

 

3、函数参数说明

 

 Socket listener new Socket(AddressFamily.InterNetwork,

            SocketType.Stream, ProtocolType.Tcp);

 新建socket所使用的参数均为系统预定义的量,直接选取使用。

 

listener.Bind(localEndPoint);

localEndPoint 表示一个定义完整的终端,包括IP和端口信息。

 

//new IPEndPoint(IPAddress,port)

 

//IPAdress.Parse("192.168.1.3")

 

listener.Listen(100);

监听

 

    listener.BeginAccept(

                    new AsyncCallback(AcceptCallback),

                    listener);

  AsyncCallback(AcceptCallback),一旦连接上后的回调函数为AcceptCallback。当系统调用这个函数时,自动赋予的输入参数为IAsyncResoult类型变量ar。

   listener,连接行为的容器。

 

Socket handler listener.EndAccept(ar);

完成连接,返回此时的socket通道。

 

handler.BeginReceive(state.buffer, 0, StateObject.BufferSize, 0,

            new AsyncCallback(ReadCallback), state);

接收的字节,0,字节长度,0,接收时调用的回调函数,接收行为的容器。

 

========

 

容器的结构类型为:

 

Code

 

  1. public class StateObject
  2. {
  3.     // Client  socket.
  4.     public Socket workSocket null;
  5.     // Size of receive buffer.
  6.     public const int BufferSize 1024;
  7.     // Receive buffer.
  8.     public byte[] buffer new byte[BufferSize];
  9.     // Received data string.
  10.     public StringBuilder sb new StringBuilder();
  11. }

容器至少为一个socket类型。

 

===============

 

  // Read data from the client socket. 

        int bytesRead handler.EndReceive(ar);

完成一次连接。数据存储在state.buffer里,bytesRead为读取的长度。

 

handler.BeginSend(byteData, 0, byteData.Length, 0,

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值