周末了,用纯C/C++写了一个服务端,简单:

 #include <winsock2.h>
#include <stdio.h>
#pragma comment(lib, "ws2_32.lib")int main()
{WORD wVersionRequested;WSADATA wsaData;wVersionRequested = MAKEWORD(1, 1);WSAStartup( wVersionRequested, &wsaData );SOCKET sockClient = socket(AF_INET, SOCK_STREAM, 0);SOCKADDR_IN addrSrv;addrSrv.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");addrSrv.sin_family = AF_INET;addrSrv.sin_port = htons(8888);int ret = connect(sockClient, (SOCKADDR*)&addrSrv, sizeof(SOCKADDR));printf("connect ret is %d\n", ret);fd_set rfds;struct timeval timeout = {4, 0};FD_ZERO(&rfds); FD_SET(sockClient, &rfds);ret = select(-1, &rfds, NULL, NULL, &timeout);printf("select ret is %d\n",ret);if(0 > ret){printf("select error\n");return -1;}if(0 == ret){printf("time out\n");return -2;}if(FD_ISSET(sockClient, &rfds)){char recvBuf[200] = "x";ret = recv(sockClient, recvBuf, 100, 0);if(0 > ret){printf("recv error");return -3;}if(0 == ret){printf("recv ret is %d, buf is %s\n", ret, recvBuf);return -4;}printf("%s\n", recvBuf);}while(1);closesocket(sockClient);WSACleanup();return 0;
}

实现了带超时的recv函数。

带超时的recv函数相关推荐

  1. windows下带超时的telnet探测IP和端口

    玩树莓派由于没有屏幕,IP可能会跳,这时就不知道自己的树莓派是哪个IP了,下面可以用这个程序去探测自己树莓派的IP.其主要思想是:非阻塞的带超时的connect函数. #include <std ...

  2. 如何让recv函数有点脾气 (让你知道select函数的威力)

    分享一下我老师大神的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow 我们知道, rec ...

  3. linux内核中send与recv函数详解

    Linux send与recv函数详解 1.简介 #include <sys/socket.h> ssize_t recv(int sockfd, void *buff, size_t n ...

  4. 【Socket网络编程】17. recv() 函数详解

    recv函数 int recv( SOCKET s, char *buf, int len, int flags); 参数说明 第一个参数指定接收端套接字描述符: 第二个参数指明一个缓冲区,该缓冲区用 ...

  5. linux send与recv函数详解

    linux send与recv函数详解 1 #include <sys/socket.h> 2 ssize_t recv(int sockfd, void *buff, size_t nb ...

  6. recv函数返回值说明

    recv函数 int recv( SOCKET s, char FAR *buf, int len, int flags); 不论是客户还是服务器应用程序都用recv函数从TCP连接的另一端接收数据. ...

  7. recv函数_第五十二章、send和recv函数

    套接字之间一旦建立了连接,那么就可以传送数据了,上一章我们使用的是标准读写函数read和write,这一章我们再来学习另外两个函数recv和send函数. recv和send函数只能用于套接字,还需要 ...

  8. 有关send()和recv()函数的理解

    ssize_t send(int sock, const void *buf, size_t len, int flags); 不论是客户还是服务器应用程序都用send函数来向TCP连接的另一端发送数 ...

  9. linux Socket send与recv函数详解

    转自:http://www.cnblogs.com/blankqdb/archive/2012/08/30/2663859.html linux send与recv函数详解 1 #include &l ...

最新文章

  1. SpringBatch 读取JSON(JsonItemReader)用法(十一)
  2. .net性能测试和优化1 基本概念
  3. 未了(endless)(【CCF】NOI Online 能力测试2 入门组第一题 )
  4. (MathType)LaTeX风格公式样式
  5. mysql错误1215hy000_无法添加外键约束-MySQL错误1215(HY000)
  6. vue+elementUI中Dialog实现组件弹框以及子父组件页面传值
  7. 人事面试java需要注意点_程序员hr面试注意事项
  8. 中英文切换_值得收藏|不重装软件实现ArcGIS中英文版本之间切换
  9. 做自媒体,不用露脸拍视频,方法都在这篇文章
  10. OA系统十九:请假申请五:【请假申请】这个内嵌页面的前台文件;设置【点击左侧菜单栏的“请假申请”后】在首页的“功能区”显示【请假功能】这个内嵌页面;
  11. 环宇智行基于NVIDIA TX2的L4级自动驾驶方案
  12. 电脑C盘满了怎么快速清理
  13. 算法中的一些数学问题分享,ICG游戏
  14. MuleSoft知识总结-7.使用Anypoint Studio
  15. 我是如何拿到腾讯offer的(干货面经+经验分享)
  16. 构造器(有参、无参)
  17. Win7系统下文件或程序无法选择默认打开方式如何解决
  18. 超声波测距仪设计制作
  19. [vue][面试]谈一谈对vue组件化的理解?
  20. php printer使用手册,go/printer

热门文章

  1. python函数调用另一个函数的变量_python怎么调用另一个函数的变量。不用return
  2. markdown数据转换,处理html2canvas+jsPDF下载后文字截断问题(记录)
  3. 计算机网络课程实验:wireshark ARP协议
  4. Java 中各种数据类型的转换
  5. python中时间日期相减并转化为秒
  6. 又来了!“领英”四分之一用户信息落入黑客手中
  7. 使用uniapp在微信小程序改变v-model里面的值,视图不更新的解决方案
  8. 如何给没有图片的织梦文章内容自动加图片
  9. java中response.setHeader()不生效
  10. css给div添加阴影