#include <WinSock2.h>
#include <stdio.h>
#include <windows.h> DWORD ServerRoutine(LPVOID lpParam); #pragma comment(lib,"Ws2_32.lib") #define IP "127.0.0.1"
#define PORT 3333 static int counter = 1;
int main()
{
//declare varible
WSADATA ws;
SOCKET local,acceptSocket;
sockaddr_in localAddr;
unsigned int unAddrLen = sizeof(localAddr);
int nRet;
///init WSAStartup(MAKEWORD(2,2),&ws);
local = socket(AF_INET,SOCK_STREAM,0);
if(local == INVALID_SOCKET)
{
return -1;
}
localAddr.sin_addr.s_addr = inet_addr(IP);
localAddr.sin_family = AF_INET;
localAddr.sin_port = htons(PORT);
memset(localAddr.sin_zero,0,sizeof(localAddr.sin_zero)); nRet = bind(local,(sockaddr *)&localAddr,unAddrLen); if(nRet)
{
return -2;
}
listen(local,5);
while(1)
{
acceptSocket = accept(local,(sockaddr *)&localAddr,(int *)&unAddrLen);
if(acceptSocket != INVALID_SOCKET)
{
CreateThread(NULL,0,(LPTHREAD_START_ROUTINE )ServerRoutine,&acceptSocket,0,NULL);
}
}
if(local)
{
closesocket(local);
}
if(acceptSocket)
{
closesocket(acceptSocket);
} return 0; }
DWORD ServerRoutine(LPVOID lpParam)
{
counter ++;
SOCKET s =* (SOCKET *)(lpParam);
int nRet ;
char num[10] = "";
char buf[1024]="hello world! coming from server!";
itoa(counter,num,10);
strcat(buf,num);
while(1)
{
nRet = send(s,buf,strlen(buf)+1,0);
Sleep(500);
} return 0;
}

client 代码:

#include <WinSock2.h>
#include <stdio.h>
#include <windows.h> #pragma comment(lib,"Ws2_32.lib") #define IP "127.0.0.1"
#define PORT 3333 int main()
{
//declare varible
WSADATA ws;
SOCKET server;
sockaddr_in serverAddr;
unsigned int unAddrLen = sizeof(serverAddr);
int nRet;
///init WSAStartup(MAKEWORD(2,2),&ws);
server = socket(AF_INET,SOCK_STREAM,0);
if(server == INVALID_SOCKET)
{
return -1;
}
serverAddr.sin_addr.s_addr = inet_addr(IP);
serverAddr.sin_family = AF_INET;
serverAddr.sin_port = htons(PORT);
memset(serverAddr.sin_zero,0,sizeof(serverAddr.sin_zero)); //nRet = bind(server,(sockaddr *)&serverAddr,unAddrLen);
//int n = WSAGetLastError();
//if(nRet)
//{
// return -2;
//} nRet = connect(server,(sockaddr *)&serverAddr,int(unAddrLen)); if(nRet)
{
return -3;
}
char buf[1024]="";
while(1)
{
memset(buf,0,1024);
nRet = recv(server,buf,sizeof(buf),0);
printf("%s\n",buf);
Sleep(1000);
}
closesocket(server);
return 0; }

counter  记录了客户端的个数,listen的队列长度为 5。

看截图:事实上可以更多我试过超过12的

win8 下面 listen 的队列长度貌似无效了 上c/s 代码 并附截图,有图有真相的更多相关文章

  1. 解决:win8.1 oepnvpn客户端 redirect-gateway def1无效,自动获取的IP没有网关问题

    解决:win8.1 oepnvpn客户端 redirect-gateway def1无效,自动获取的IP没有网关问题 该问题是操作系统权限问题,需要将程序设置为以管理员模式运行和以windows7兼容 ...

  2. ps -ef |grep -v 在shell sh 脚本中貌似无效?

    想通过ps -ef |grep erdp_ |awk '{print $2}' 获取 erdp_ 开头的进程id, 执行在终端环境下执行是ok的,但是在 sh 脚本里面竟然多出了 两个 root 11 ...

  3. 安装win8/win10提示无法在驱动器0分区上安装windows解决方法

    在通过U盘或光盘安装win8/win8.1/win10系统时,不少用户遇到无法安装的问题,提示“无法在驱动器0的分区1上安装windows”,格式化分区1也不能解决,进而提示Windows无法安装到这 ...

  4. Opencv 完美配置攻略 2014 (Win8.1 + Opencv 2.4.8 + VS 2013)上

    下载安装软件 下载 Opencv for Windows 最新版本,本文是 Opencv 2.4.8.双击后会出现解压提示,实际上就是“安装”了,路径填写为 D:/Program Files,然后确定 ...

  5. angular实现form验证

    先上效果页面:https://lpdong.github.io/myForm-1/ 其中几个知识点 1.angularJs提供了几个新的type类型: type="password" ...

  6. 20165230 《Java程序设计》实验五《网络编程与安全》实验报告

    20165230 <Java程序设计>实验五<网络编程与安全>实验报告 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:田坤烨 学号:20165230 成绩: ...

  7. 怎样写一个与Win8 IE11兼容的标准BHO?

    怎样写一个与Win8 IE11兼容的标准BHO? 环境:Windows8.1 x86 IE11(其它环境未讨论) 作者:magictong 日期:2014/02/02 概述 微软在2013年6月份推出 ...

  8. Win8.1微软官方最终正式版ISO镜像文件

    Win8.1微软官方最终正式版ISO镜像文件 经过预览版,测试版.开发版本等几个乱七八糟的版本后,2013年10月17日,微软终于如约的发布了Win8.1最终正式版. Win8.1和win8的区别 1 ...

  9. win8 telnet VirtualBox中的redhat9

    1. VirtualBox设置网络连接为“桥接网卡”,并且此网卡要为win8正在使用的网卡(比如我的电脑上使用的就是无线网卡,则选择网卡时也要用无线网卡) 2. 在redhat的终端里,运行ifcon ...

随机推荐

  1. Linux ----> debian中环境的常见配置

    环境: (debian 9)/(lubuntu18.0.4+virtualbox) 1.配置下载源: gedit /etc/apt/sources.list #163 deb http://mirro ...

  2. 小程序授权demo

    <button wx:if="{{canIUse}}"   open-type="getUserInfo"  bindgetuserinfo=" ...

  3. php二分法查找

    //二分查找(数组里查找某个元素) function bin_sch($array, $low, $high, $k) { if ($low <= $high) { $mid = intval( ...

  4. Web 自动化测试框架 sweetest 介绍

    项目开源: https://github.com/tonglei100/sweetest 文章转载:https://segmentfault.com/a/1190000011612061 介绍 swe ...

  5. 更改 Windows 软件默认安装位置教程

    在打开的“运行”窗口中,输入命令regedit,然后点击确定按钮 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion 百度 ...

  6. hadoop集群添加新节点

    0.说明 Hadoop集群已经运行正常,现在新买了一些机子,要加入到集群里面增加新的节点.以下就是增加的过程. 1.配置运行环境 安装与master和其他slave相同的java环境,jdk版本要相同 ...

  7. python使用SQLAlchemy模块连接MySQL

    ORM技术:Object-Relational Mapping,负责把关系数据库的表结构映射到对象上. 1.安装SQLAlchemy,MySQLdb模块 MySQLdb安装教程:http://www. ...

  8. spring-boot 全面认知

    https://blog.csdn.net/ityouknow/article/details/80490926,这个链接非常全面的讲解了spring-boot的内容,从初级到中级,到最后的提升,觉得 ...

  9. CAD插入块后坐标不匹配

    有两张图,将一张图复制(CTRL+V),再另一张图中粘贴到原坐标(pasteorig),两张图可以很好匹配,但将一张图以外部参照的方式插入另一张图却发现图形无法匹配.因为没有看到图纸,所以我也没法准确 ...

  10. [LeetCode] 113. Path Sum II ☆☆☆(二叉树所有路径和等于给定的数)

    LeetCode 二叉树路径问题 Path SUM(①②③)总结 Path Sum II leetcode java 描述 Given a binary tree and a sum, find al ...