服务器测试代码 主要用于新平台的socket的测试
2011-06-20 19:18
197 查看
// Server.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <WINSOCK2.H> #pragma comment(lib, "ws2_32.lib ") #define SERVPORT 3333 #define BACKLOG 10 int nCount = 0; int main(int argc, char* argv[]) { printf("socket__WSAStartup__init/n"); WORD wVersion=MAKEWORD(2,0); WSADATA wsData; int nResult= WSAStartup(wVersion,&wsData); if(nResult !=0) { perror("ERROR__socket__WSAStartup/n"); return -1; } int sock_fd,client_fd; struct sockaddr_in my_addr; struct sockaddr_in remote_addr; if ((sock_fd = socket(AF_INET, SOCK_STREAM, 0)) == -1) { perror("ERROR__socket__AF_INET/n"); return -1; } my_addr.sin_family=AF_INET; my_addr.sin_port=htons(SERVPORT); my_addr.sin_addr.s_addr = INADDR_ANY; if (bind(sock_fd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr)) == -1) { perror("ERROR__socket__bind/n"); return -1; } if (listen(sock_fd, BACKLOG) == -1) { perror("ERROR__socket__listen/n"); return -1; } while(1) { printf("accept___start/n"); int sin_size = sizeof(struct sockaddr_in); if ((client_fd = accept(sock_fd, (struct sockaddr *)&remote_addr, &sin_size)) == -1) { perror("ERROR__socket__accept/n"); break; } printf("received a connection from %s/n", inet_ntoa(remote_addr.sin_addr)); struct timeval tv; fd_set readfds; tv.tv_sec = 20; tv.tv_usec = 50000; /* don't care about writefds and exceptfds: */ printf("select___start/n"); while (1) { FD_ZERO(&readfds); FD_SET((u_int)client_fd, &readfds); if(select(0, &readfds, NULL, NULL, &tv) != -1) { if (FD_ISSET(client_fd,&readfds)) { char pRecv[2024] = {0}; int nLen = 0; //¼òµ¥´¦Àí£¬Ö»×÷Ϊ2024³¤¶ÈµÄÊý¾Ý°ü nLen = recv(client_fd,pRecv,2024,0); if(nLen > 2024) { printf("ERROR__received__³¤¶È²»¹»£¬²»´¦Àí/n"); break; } printf("received__%d:%s/n",nCount,pRecv); if (send(client_fd,pRecv,nLen, 0) == -1) { printf("ERROR__send/n"); break; } printf("send__%d:%s/n",nCount++,pRecv); } else { printf("Timed out./n"); } } continue; } printf("select___over/n"); } return 0; }
相关文章推荐
- py3 使用TCP SOCKET 发送json字符串给服务器测试例程代码
- lua中配置luasocket,并且做成一个socket服务器,主要用于(D'Fusion Studio)中
- 使用gecco获取代理IP,仅测试代码用,不要用于非法用途
- 安装nginx服务器用于rtmp(ios端)推流测试
- Redis 一款服务器数据结构服务器(多用于内存数据库) Junit 测试 Code Speech
- 使用socket的Linux上的C语言helloworld多线程服务器和客户端测试程序
- socket的服务器端测试代码
- 转:sock_ev——linux平台socket事件框架(基于数据报的测试程序) .
- Linux平台代码覆盖率测试工具GCOV简介
- Linux平台代码覆盖率测试工具GCOV简介
- 如何把本地已有的项目传到服务器或某代码托管平台
- OneNET平台物联网接入完整代码(设备端+web服务器端)对外开放
- 跨平台Socket 代码测试
- 使用socket的Linux上的C语言helloworld多线程服务器和客户端测试程序
- 本地代码连远程测试服务器的跨域问题
- 服务器的CPU一直上不去,加几行代码,再加一个测试工具,让它跑起100%
- linux 各类打包命令(主要用于服务器之间迁移资源文件)
- linux socket编程2-服务器代码示例
- 电商平台搭建--项目代码发布及服务器环境部署
- ftp客户端源代码,使用VC+SOCKET编程,在SERV-U6.0服务器上测试通过,能断点续传