#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. hadoop挂载多硬盘,ZZ-- multiple disks per node

    hadoop挂载多硬盘 ...multiple disks per node  multiple disks per node Read more at: http://www.queryhome.c ...

  2. win10系统同时安装python2和python3

    1.官网下载python2和python3版本 2.安装python3,勾上Add Python3.5 to PATH,自定义选择安装目录,安装,验证:WIN+R--->cmd,输入python ...

  3. 6 Django REST framework JWT 和登录功能实现

    JWT 在用户注册或登录后,我们想记录用户的登录状态,或者为用户创建身份认证的凭证. 我们不再使用Session认证机制,而使用Json Web Token认证机制. Json web token ( ...

  4. confirm提示弹出确定和取消按钮

    js----> var con = confirm('这是一个确定加取消的提示窗口') if(con==true){ document.write("点击了确定按钮") }e ...

  5. Linux 文本编辑器 vim

    第五讲 文本编辑器 vim

  6. Maximum Questions CodeForces - 900E (字符串,dp)

    大意:给定长$n$的字符串$s$, 只含'a','b','?', '?'可以替换为任意字符, 在给定长$t$的字符串, "ababab...", 求替换尽量少的'?', 使得$s$ ...

  7. 5月21 练习AJAX的查看详细及批量删除

    老师讲过之后的复习: 显示数据的代码部分: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &q ...

  8. QQ企业邮箱接口

    我推荐的这篇文章很好:http://wenku.baidu.com/link?url=KQIMyrECGb8GS_0fag4PRG64M8Z7wOLbsU1f3BhydXAyYJDC2JMHEuVcy ...

  9. [luogu P1552] [APIO2012]派遣

    [luogu P1552] [APIO2012]派遣 题目背景 在一个忍者的帮派里,一些忍者们被选中派遣给顾客,然后依据自己的工作获取报偿. 题目描述 在这个帮派里,有一名忍者被称之为Master.除 ...

  10. Shelld5的使用

    Shelld的连接7步   ·   · huhu_k: 想和你相遇.