关于C#网络编程,异步通信问题。

永磁体呵呵哒 2010-07-16 01:12:34
一个Server,可能有几千个连接。

不知道用C#本身去做,性能问题怎么样。想用异步通信

有做过的没。
本想调win32API来做了,可是又觉得不太好。整个项目想用C#来实现,

如果单用C#,用什么比较好。直接用系统的API,还是要自己写呢。
...全文
182 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
假设把一个csdn服务器放在互联网上(假设只有一个服务器),它怎么定位“有几千个连接”这个概念?是说它只能最多满足一所中学里的学生使用吗?

不理解你说的“有几千个连接”的概念。最直观的需求处理机制都描述不清,深入的就别提了。

如果我部署一个业务服务器,在没有什么特殊开发的限制的情况下,我反而会让它服务于整个互联网几十亿个客户,假设每天十万ip难道这不是正常的?而这十万个ip中每个ip每天显然会有(从不同端口发起的)至少几百个连接吧?!
永磁体呵呵哒 2010-07-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 yuwenge 的回复:]

不会就不会,扯那么一大通。还不如求源码。
[/Quote]
怎么写我知道。

只是不知道性能会怎么样。我也没有真实的几千台机器来测试
oushengfen 2010-07-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 carpathia 的回复:]
不用,在ASP.NET2.0以上的版本里,已经有伪IOCP可以实现异步通讯了
SocketAsyncEventArgs socketEvent = new SocketAsyncEventArgs();
private void Send()
{
IsFinishSend = 1;
socketEvent.Completed += SendComplete;
socke……
[/Quote]

呵呵,学习.....
tyg111 2010-07-16
  • 打赏
  • 举报
回复
我也在学,刚实现传音频,但是出现一个问题就是内存占用的很多,不知道怎么修改
Carpathia 2010-07-16
  • 打赏
  • 举报
回复
不用,在ASP.NET2.0以上的版本里,已经有伪IOCP可以实现异步通讯了
SocketAsyncEventArgs socketEvent = new SocketAsyncEventArgs();
private void Send()
{
IsFinishSend = 1;
socketEvent.Completed += SendComplete;
socketEvent.SetBuffer(buffer, 0, buffer.Length);
socket.SendAsync(socketEvent);
}

private void SendComplete(object sender, SocketAsyncEventArgs socketEvents)
{
socketEvent.Completed -= SendComplete;
if (socketEvent.BytesTransferred == buffer.Length)
{
IsFinishSend = 0;//发送成功
}
else
{
//发送失败
SocketClose();
IsFinishSend = 2;
}
}
卧_槽 2010-07-16
  • 打赏
  • 举报
回复
不会就不会,扯那么一大通。还不如求源码。
平生我自如 2010-07-16
  • 打赏
  • 举报
回复
没弄过!帮顶

110,571

社区成员

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

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

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