netsocket with select module [first]
来源:互联网 发布:华为网络机顶盒官网 编辑:程序博客网 时间:2024/06/11 04:08
netsocket with select module [first]
//不完善的select模型 雏形
#include <windows.h>
#include <stdio.h>
#define PORT 9318
#pragma comment(lib,"ws2_32")
//服务器
FD_SET WriteSet;
FD_SET ReadSet;
DWORD WINAPI work(void * data)
{
SOCKET client=(SOCKET)data;
while(1){
char recvBuf[100];
recv(client,recvBuf,100,0);
if (GetLastError() != WSAEWOULDBLOCK)
{
printf("conn err %d/n",WSAGetLastError());
closesocket(client);
printf("Closing socket number %d/n", client);
break;
}
printf("%s/n",recvBuf);
send(client,recvBuf,strlen(recvBuf)+1,0);
}
closesocket(client);
return 0;
}
int main(){
//加载并初始化winsock ddl
WORD wVersionRequested;
WSADATA wsaData;
wVersionRequested = MAKEWORD(2,2);
::WSAStartup(wVersionRequested,&wsaData);
SOCKET server=socket(AF_INET,SOCK_STREAM,0);
SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr=inet_addr("0.0.0.0");;
addrSrv.sin_family=AF_INET;
addrSrv.sin_port=htons(PORT);
bind(server,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
listen(server,5);
SOCKADDR_IN addrClient;
int len=sizeof(SOCKADDR_IN);
for(;;)
{
FD_ZERO(&ReadSet);
FD_SET(server, &ReadSet); //定位连接
SOCKET client = select(server+1,&ReadSet,NULL,NULL,NULL);
client=accept(server,(SOCKADDR*)&addrClient,&len);
printf("%s/n",inet_ntoa(addrClient.sin_addr));
FD_ZERO(&WriteSet); //为0
FD_SET(server, &WriteSet); //定位接收
HANDLE t=CreateThread(0,0,work,(void*)client,0,0);
}
closesocket(server);
::WSACleanup();
return 0;
}
- netsocket with select module [first]
- My first module
- The first module to linux
- Linux Device Driver - first Module
- debug module with kgdb
- C module with ctypes
- First blog ,first day with Ubuntu
- First Module Pool Program in SAP
- compile module with freescale LTIB
- SqlDataSource with select command
- Select 的 with语句
- the first helloworld with j2me
- Head First WebService with CXF
- Programming with Linux -First Program
- The First Pro with wxpython
- QML first steps with QML
- C#.netSOCKET通讯系列(socket编程原理)
- 【tensorflow_error】'module' has no attribute 'select'
- 如何取得本机IP
- 翻出以前糟烂的封装的配置文件类。
- Java异常讲解
- Windows下基于Eclipse的Hadoop开发环境完全配置(三)
- 使用原始套接字发送自定义IP包
- netsocket with select module [first]
- SD card技术了解并WINCE下SDHC驱动开发(updated)
- MSDN ASP.NET移动设备开发资料
- 用BFD加强Linux的防火墙
- 简单成绩计算程序编码
- oracle trunc
- 游戏产业与黑帮
- Install VMware Tools
- FCKeditorV2 的使用