Socket 同步与异步问题实质判断

heilong05 2007-02-09 11:35:02
同步与异步传输问题:
类型:1、Server同步listener ,Client异步start;2、Server异步listener ,Client同步start。还有其他两种就是同步对同步,异步对异步。

针对4中类型。任意组合都可以吗?如果不可以请问各个组合的弊端。以及会发生的Catch。还有如果任意组合都可以那么请问哪种组合最佳。请各个高手指点实质性知识。共同进步。谢谢。
...全文
679 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lljfl 2007-02-14
  • 打赏
  • 举报
回复
以上四种组合都可以,本人都实际做过.同意tjvictor的说法
heilong05 2007-02-14
  • 打赏
  • 举报
回复
小新;我的就是server同步,client异步。这个不影响的。
灰太狼 2007-02-09
  • 打赏
  • 举报
回复
同步和异步都是针对本机操作来说的,不存在什么相互性,不同的组合可以使程序更加灵活。只要程序没错就不会发生异常。
heilong05 2007-02-09
  • 打赏
  • 举报
回复
现在有个Socket项目:Server上的listener用的是同步方式:我Client上用的全部是同步(Connect,Send,Receive)。当然Connect,Send的包都很小。异步应该用不上。一次一个包就能解决问题。现在是我的Recieve。有时候就不成功。我的包接受大小是1024。是不是让Listener上的Send的内容不限制大小。我就应该一定能成功。因为如果他限制了大小。我接受了第一后他就会给我一个ShutDown的信号。那我这边Socketdown就会close掉。就没办法继续接受:就会报错误:无法找到对象:因为我的Socket已经关闭。不知道我这个思路能理顺。能通吗?还请高手指教。
heilong05 2007-02-09
  • 打赏
  • 举报
回复
个人认为:会出现问题:比如:试想对方发送一个较大的数据包,它有可能需要分包,假设分成2个包,包1已经发送完毕,这时你会收到一个FD_READ通知,然后对方关闭socket,你会收到一个FD_CLOSE通知,接着包2又发到(对方采用Gracefal关闭),这样,你又收到一个FD_READ通知,这是tcp/ip协议决定的顺序,大家觉的对吗?
glacier111 2007-02-09
  • 打赏
  • 举报
回复
帮顶
liangxf0022 2007-02-09
  • 打赏
  • 举报
回复
由于网卡的Cache大概1k,还要保存发送及接收的数据。所以同步对同步来说,只能适应于小数据量的传输。我们写的代码用同步方式,一次发送大概100K的数据大概30s。异步的速度没试过。

TO:
同步和异步都是针对本机操作来说的,不存在什么相互性,不同的组合可以使程序更加灵活。只要程序没错就不会发生异常。
------------------------------------------------
可疑哦,我们从来没有试成功过Server同步,客户端异步。帖个出来看看
stcrane 2007-02-09
  • 打赏
  • 举报
回复
正在做这方面的东西,各位有空交流下阿
MSN:stcrane1228@hotmail.com
heilong05 2007-02-09
  • 打赏
  • 举报
回复
哦。这样啊。我调试调试代码看看。能具体分析分析。各种组合的注意点和优缺点吗?

110,545

社区成员

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

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

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