重构阻塞式客户端程序代码

原创 2011年01月17日 01:48:00

     在这几个月中阅读和编写了大量的套接字程序,所以对套接字 程序的编写也有了新的认识现在这里分享出来与大家交流一下,不足之处还望大家指正。

    这里的示例程序是修改自 Winsocket入门教程一:多线程阻塞式服务器和阻塞式客户端程序(TCP) 中的客户端程序。相对于原来的程序,主要进行了以下几个方面的处理:

    1.添加了更好的错误处理代码。使用GOTO语句将错误处理放到一起,可以使错误处理的代码更利于维护,并且减少代码的重复(Code duplicate)

    2.使用微软推荐的函数getaddrinfo函数获取连接地址,不过冒似使用这种方法要写的代码更多。

    3.发送和接收时使用循环发送和接收,以处理一次发送或者接收不完的情况。

    示例代码如下

   

    

非阻塞socket下客户端connect + select简单demo

一个简单实现非阻塞socket,超时响应并判断是否连接成功demo:#include #include #include #include #include #include #inclu...
  • Dancer__Sky
  • Dancer__Sky
  • 2017年04月18日 09:22
  • 293

服务器模型——从单线程阻塞到多线程非阻塞(下)

前言的前言 服务器模型涉及到线程模式和IO模式,搞清楚这些就能针对各种场景有的放矢。该系列分成三部分: * 单线程/多线程阻塞I/O模型 * 单线程非阻塞I/O模型 * 多线程非阻塞I/O模型...
  • wangyangzhizhou
  • wangyangzhizhou
  • 2018年01月04日 09:14
  • 362

基于非阻塞socket的多线程服务器的实现------一个服务器如何与多个客户端进行通信?

我们首先来看服务端(涉及非阻塞socket和多线程): #include #include #include #pragma comment(lib, "ws2_32.lib") #def...
  • stpeace
  • stpeace
  • 2015年02月07日 00:34
  • 4023

阻塞式IO和非阻塞式IO

什么是阻塞式IO,什么是非阻塞式IO?区分他们有何用? 使用java的阻塞式IO实现非阻塞式IO。 怎么使用c语言实现非阻塞式socket线程?...
  • qq_21882325
  • qq_21882325
  • 2017年03月27日 22:39
  • 725

服务端用非阻塞socket<--->客户端用阻塞socket

之前, 我们简要第了解了一下非阻塞的socket。 在本文中, 我们让服务端用非阻塞socket, 客户端依然用我们熟悉的阻塞的socket.        服务端程序如下(非阻塞的socket)...
  • stpeace
  • stpeace
  • 2015年02月05日 23:08
  • 3190

阻塞IO服务器模型之单线程服务器模型

单线程服务器模型是最简单的一个服务器模型,几乎我们所有程序员在刚开始接触网络编程(不管是B/S结构还是C/S结构)都是从这个简单的模型开始。这种模型只提供同时一个客户端访问,多个客户端访问必须要等到前...
  • wangyangzhizhou
  • wangyangzhizhou
  • 2014年08月12日 20:11
  • 2007

关于四位计数器的设计,阻塞式与非阻塞式赋值引发的问题

1、今天,从教材中学了两种可综合的四位计术器的设计方法,先附上代码吧。 (1)、建模: 方法一: module counter1(out,cout,data,load,cin,clk);   ...
  • Tina_yaoyao
  • Tina_yaoyao
  • 2015年04月20日 16:11
  • 483

【Java重构系列】重构31式之封装集合

2009年,Sean Chambers在其博客中发表了31 Days of Refactoring: Useful refactoring techniques you have to know系列文...
  • LoveLion
  • LoveLion
  • 2014年01月10日 02:27
  • 18289

回调函数、同步、异步、阻塞、非阻塞、D-BUS等概念的理解

同步、异步与阻塞、非阻塞 这个几个概念很容易被混淆。这些概念基本都是使用在多个部件进行协作或需要在一定时间内完成的场景中。 以前用过一个叫DSI的机制,用于分布式系统间的数据传递,能运行与Q-ne...
  • viewcode
  • viewcode
  • 2014年03月17日 18:04
  • 5487

PopupWindow阻塞式对话框

PopupWindow是阻塞式对话框。 PopupWindow弹出时,程序会等待,直到调用dismiss方法退出...
  • zjs261019
  • zjs261019
  • 2016年12月06日 17:07
  • 185
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:重构阻塞式客户端程序代码
举报原因:
原因补充:

(最多只允许输入30个字)