winsock如何编程

cxmcxm 2013-06-25 04:25:57
原vs6的winsock activex控件接收数据是有事件触发,现在的tcplisten与tcpclient都只有属性与方法,如何检测数据到达?是否用死循环来不断检测数据是否可以接收?请高手指教
...全文
71 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
你可以用死循环,不过,在还没有侦听到请求时 线程将阻塞在this.tcpListener.AcceptSocket(); 或者异步方式的EndAcceptSocket()
  • 打赏
  • 举报
回复
//侦听到请求了
if (this.tcpListener.Pending())
{
   var socket = this.tcpListener.AcceptSocket();
   //缓冲区收到待读取的数据
   if (socket.Available > 0)
   {
        BeginRecieve(socket);
        ...
   }
}
上面只是简单的判断逻辑,记得用异步处理
cxmcxm 2013-06-26
  • 打赏
  • 举报
回复
连接之后不是一直都有数据,用什么方法检测对方有数据到达。 原activeX控件是有数据到达时有一个事件自动通知。现在类只有属性与方法,如何实现自动检测数据到达的功能
Regan-lin 2013-06-25
  • 打赏
  • 举报
回复
有个getstream()方法的用stream接收再判断长度就行了

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧