C++ Socket服务器简单代码示例
2015-06-12 15:40
405 查看
C++ Socket服务器简单代码示例
#include <WinSock2.h> #include <stdio.h> #pragma comment(lib,"ws2_32.lib") //服务器端 void main() { WSADATA wsaData; int errorCode = WSAStartup(MAKEWORD(1,1),&wsaData); if (errorCode != 0) return; SOCKET acceptSocket = socket(AF_INET,SOCK_STREAM,0); SOCKADDR_IN addr; addr.sin_family = AF_INET; addr.sin_addr.S_un.S_addr = htonl(INADDR_ANY); addr.sin_port = htons(6001); //端口号 errorCode = bind(acceptSocket,(SOCKADDR*)&addr,sizeof(SOCKADDR)); if (errorCode != 0) return; errorCode = listen(acceptSocket,5); if (errorCode != 0) return; SOCKADDR_IN sockAddr; int len = sizeof(SOCKADDR); char recvBuf[5000] = {0}; char sendBuf[5000] = {0}; while (true) { SOCKET clientSocket = accept(acceptSocket,(SOCKADDR*)&sockAddr,&len); if (clientSocket == INVALID_SOCKET) { Sleep(100); continue; } memset(sendBuf,0,5000); sprintf(sendBuf,"%s is Connected!\r\n",inet_ntoa(sockAddr.sin_addr)); printf(sendBuf); while(true) { memset(recvBuf,0,5000); memset(sendBuf,0,5000); int ret = recv(clientSocket,recvBuf, 4999,0); if (ret < 0) break; sprintf(sendBuf,"Hello %s ,message recved!\r\n",inet_ntoa(sockAddr.sin_addr)); printf(sendBuf); ret = send(clientSocket,sendBuf, strlen(sendBuf),0); if (ret < 0) break; } memset(sendBuf,0,5000); sprintf(sendBuf,"%s is Closed!\r\n",inet_ntoa(sockAddr.sin_addr)); printf(sendBuf); closesocket(clientSocket); } closesocket(acceptSocket); WSACleanup(); }
相关文章推荐
- c/c++面试题
- C++内存管理
- C语言宏定义总结
- C语言之#define用法(宏定义命令)
- 【基础】C++设计模式之单例模式
- C++中使用new定义的变量和不使用new定义的变量区别
- C语言嵌入式编程
- c语言资格认证
- 如果new 一个对象,用free去释放,会有什么问题?
- 冒泡排序(C++语言描述)
- C++模板
- AHP-层次分析法(C++源码,附详细注释和样例)
- 自动化测试程序之一自定义键盘的模拟测试程序(C语言)
- C++ Primer 学习笔记_6_标准库类型 -- 命名空间using与string类型
- C语言的传值与传址调用
- C++【静态成员】
- chapter12test2
- 【深度探索C++对象模型读书笔记】【第5章】构造、析构、拷贝语意学
- 传智播客c/c++公开课学习笔记--邮箱账户的破解与邮箱安全防控
- 【深度探索C++对象模型读书笔记】【第5章】构造、析构、拷贝语意学