C++网络编程Socket封装
2017-01-18 19:27
204 查看
关于C++网络编程简单功能的的socket封装
server端
client端
server端
#pragma once class Socket { public: Socket(char* ip,int port) { this->ip = ip; this->port = port; //绑定套接字 } Socket() { } void serBind() { servSock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); sockaddr_in sockAddr; memset(&sockAddr, 0, sizeof(sockAddr)); //每个字节都用0填充 sockAddr.sin_family = PF_INET; //使用IPv4地址 this->ip = ip; this->port = port; sockAddr.sin_addr.s_addr = inet_addr(this->ip); //具体的IP地址 sockAddr.sin_port = htons(this->port); //端口 bind(servSock, (SOCKADDR*)&sockAddr, sizeof(SOCKADDR)); } ~Socket() { closesocket(servSock); closesocket(clitSock); } void serAccept() { listen(servSock, 20); SOCKADDR clntAddr; int nSize = sizeof(SOCKADDR); clitSock = accept(servSock, (SOCKADDR*)&clntAddr, &nSize); } void read(char szBuffer[]) { recv(clitSock, szBuffer, MAXBYTE, NULL); } void write(char* str) { send(clitSock, str, strlen(str) + sizeof(char), NULL); } private: int port; char* ip; SOCKET servSock; SOCKET clitSock; };
client端
#pragma once class Socket { public: Socket(char* ip,int port) { this->ip = ip; this->port = port; //绑定套接字 } Socket() { } void serConnect() { clitSock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); //向服务器发起请求 sockaddr_in sockAddr; memset(&sockAddr, 0, sizeof(sockAddr)); //每个字节都用0填充 sockAddr.sin_family = PF_INET; sockAddr.sin_addr.s_addr = inet_addr(ip); sockAddr.sin_port = htons(port); connect(clitSock, (SOCKADDR*)&sockAddr, sizeof(SOCKADDR)); } ~Socket() { closesocket(clitSock); } void read(char szBuffer[]) { recv(clitSock, szBuffer, MAXBYTE, NULL); } void write(char* str) { send(clitSock, str, strlen(str) + sizeof(char), NULL); } private: int port; char* ip; SOCKET clitSock; };
相关文章推荐
- .Net网络通讯编程[利用Socket实现字串、文件、序列化对象传输]--使用封装的网络服务2
- C++自定义封装socket操作业务类完整实例
- [置顶] Muduo网络库源码分析之对socket及其相关操作的封装
- Linux C socket 封装
- 跨平台的游戏客户端Socket封装
- linux下socket实现TCP通信的简单程序接口封装
- 封装好的socket,拿去用
- 对qucik cocos2dx lua SocketTCP的再一次封装,导入全局实例,包含自定义事件
- 模仿DELPHI的SOCKET组件封装的.Net的Socket组件.-_-
- 一个简单的socket封装
- Socket编程实践(7) --Socket-Class封装(改进版v2)
- c++实现对windwos 下socket 的封装(实现封包及拆包处理)--
- Socket网络通信理论基础搜集(TCP/IP协议栈与数据包封装+TCP与UDP的区别)
- IOS用封装的API AsyncSocket进行网络通信
- XMPP框架 微信项目开发之XMPP框架中第三方框架CocoaAsyncSocket的使用——此框架其实是对C语言输入输出流的封装
- c++ 封装socket和epoll编程
- 纯C++的Socket访问Http封装类,可以运行
- 事件模型SOCKET封装
- .Net网络通讯编程[利用Socket实现字串、文件、序列化对象传输]--使用封装的网络服务3[聊天室]
- Socket封装类(事件对象)