#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. java ----> 手动编译java项目

    环境: jdk1.8,cmd,notepad++ 创建java工程test,创建文件夹: src classes lib 说明: src 放置.java文件 classes 放置.class文件 li ...

  2. LeetCode--014--最长公共前缀

    问题描述: 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","flo ...

  3. p1472 Cow Pedigrees

    用dp[i][j]记录i个点,组成深度恰好为j的方案数.arr[i][j]记录i个点,深度<=j的方案数.那么dp[i][j]只有i为奇数时不为0.而arr[i][j]等于dp[i][j]的前缀 ...

  4. 小程序中this和that用法

    微信小程序中,在wx.request({});方法调用成功或者失败之后,有时候会需要获取页面初始化数据data的情况,这个时候,如果使用,this.data来获取,会出现获取不到的情况,调试页面也会报 ...

  5. js删除数组中元素的方法

    一.清空数组 var ary = [1,2,3,4]; ary.splice(0,ary.length);//清空数组 console.log(ary); // 输出 [],空数组,即被清空了 二.删 ...

  6. 通过selenium控制浏览器滚动条

    目的:通过selenium控制浏览器滚动条 原理:通过 driver.execute_script()执行js代码,达到目的 driver.execute_script("window.sc ...

  7. leetcode-algorithms-13 Roman to Integer

    leetcode-algorithms-13 Roman to Integer Roman numerals are represented by seven different symbols: I ...

  8. 牛客练习赛30-A/C

    链接:https://ac.nowcoder.com/acm/contest/216/A来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K ...

  9. CF-413E-线段树

    http://codeforces.com/problemset/problem/413/E 给出一个2*N的格子图,每个格子要么是障碍要么是空地,M次询问(A,B)之间的最短距离. 采用分治的思想, ...

  10. ArrayList详细

    (IList值的集合 索引访问 ArrayList类IDictionary:键/值对 HashTable类 可变的集合 长度自动增长) ICollection-----IEnumerable--- I ...