#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. 【WPF】Silverlight中的Action与Trigger

    最近做的Silverlight项目上用到了大量的拖拽,自动跟随等功能,由于赶时间,加上对Silverlight半生不熟,用的是最简单也是最不好维护的方法.项目忙完了闲下来,想重构一下代码,想起了Tri ...

  2. Canvas画板

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAA6QAAAGgCAIAAAAy0z21AAAgAElEQVR4nO3dfYwkZ30n8JqZfcNex8

  3. android studio 中的快捷键汇总

    1.Ctrl + B 跳入/跳出方法或者资源文件.将鼠标光标定位到某个方法或者资源id的调用处,按Ctrl + B,将会跳入该方法或者资源文件内部,功能等同于Ctrl + 鼠标左键.如果将鼠标光标定位 ...

  4. JSX语法

    什么是JSX语法:就是符合 xml 规范的 JS 语法:(语法格式相对来说,要比HTML严谨很多) 1. 如何启用 jsx 语法? 安装 `babel` 插件 - 运行`cnpm i babel-co ...

  5. array_column的作用

    从记录集中取出 last_name 列,用相应的 "id" 列作为键值: <?php // 表示由数据库返回的可能记录集的数组 $a = array( array( 'id' ...

  6. 洛谷P1101 单词方针

    题目描述 给一 n×n 的字母方阵,内可能蕴含多个“yizhong”单词.单词在方阵中是沿着同一方向连续摆放的.摆放可沿着 88 个方向的任一方向,同一单词摆放时不再改变方向,单词与单词之间可以交叉, ...

  7. java使用线程设置定时任务

    private static int a=0; public static void main( String[] args ) { timer(); } public static void tim ...

  8. ubuntu LAMP的安装

    1.安装 Apache 1.打开终端 2. 输入以下命令 sudo apt-get install apache2 3. 如果没有sudo 权限,需要输入密码. 2.测试 Apache 为了确定安装是 ...

  9. 关于移动端rem适配

    var num = 1 / window.devicePixelRatio; var fontSize = document.documentElement.clientWidth / 10; doc ...

  10. python操作文件(增、删、改、查)

    内容 global log 127.0.0.1 local2 daemon maxconn 256 log 127.0.0.1 local2 info defaults log global mode ...