Socket之路一

学校开始学习Socket编程,虽然自己搞的是ASP.NET,但是对Socket也有很大的兴趣,一直不知道如何入门,刚好借此机会跟着学习。Socket的概念就不多写了,Windows环境下的Socket编程是WinSock,现在基本上是2.0,以前还有1.1版,但我想3.0是不会出来了。WinSock继承了伯克利开发的BSD Unix Socket的规范,所以过程都是一样的。WinSock编程一般都“异步非阻塞模式”,现在还未学习到这里,我也不知道如何调用,以后再继续讨论。

关于同步、异步、阻塞、非阻塞。

同步:所有Socket客户端的请求,在得到Socket服务器端的响应后,才返回,继续执行下面的指令。

异步:所有Socket客户端的请求,不用等到Socket服务器端的响应后,就可以返回,继续执行下面的指令。

阻塞模式:调用如recive()函数时,当缓冲区没有内容,该线程挂起,无法继续执行,直到缓冲区有内容为止。

非阻塞模式:调用如recive()函数时,当缓冲区没有内容,立即返回,并返回错误代码。

 

这是今天看了一天才入门的C# Socket成果,金旭亮老师的博客给了我很大的帮助。

Socket程序一般是没有OO的,遵循函数式的编写方式。

客户端代码:

 

服务器端代码:

 

服务器代码先执行,客户端代码后执行。

 

这个例子中还没有实现socket异常处理机制,也没有实现处理多个并发服务的效果(当同时连接两个客户端,后连接的就无反应了,因为服务器处理在Recive()处阻塞,一直等待先连接的客户端发送消息,后连接的始终在队列中等待)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值