在掌握了基于 TCP 的套接字通信流程之后,为了方便使用,提高编码效率,可以对通信操作进行封装,本着有浅入深的原则,先基于 C 语言进行面向过程的函数封装,然后再基于 C++ 进行面向对象的类封装。 1. 基于 C 语言的封装 基于TCP 的套接字通信分为两部分:服务器端通信和客户端通信。我们只要掌握了通信流程,封装出...
由于C socket的使用对命名使用很不方便,所以对其进行了简单的封装,代码如下: classIPAddress { public: structsockaddr_in address; public: IPAddress() { address.sin_addr.S_un.S_addr=INADDR_ANY; address.sin_family=AF_INET; address.sin_port=htons(0); } IPAddress(char*ip,intport) { address.si...
TcpSocket::TcpSocket(intsocket) { m_fd=socket; } 其中无参构造一般在客户端使用,通过这个套接字对象再和服务器进行连接,之后就可以通信了 有参构造主要在服务器端使用,当服务器端得到了一个用于通信的套接字对象之后,就可以基于这个套接字直接通信,因此不需要再次进行连接操作。 2.2.2 服务器类 服务器类主...
MySocket类是一个 C++ 套接字类,封装了在 Windows 平台上使用原生网络 API 进行同步远程通信的基本功能,该类需要使用多字节编码模式,服务端与客户端均需要引入此类,在项目头文件中均需要新建MySocket.hpp文件。 完整代码如下所示; #pragmaonce#include<WinSock2.h>#pragmacomment(lib,"ws2_32.lib")class MySocke...
服务器类主要用于套接字通信的服务器端,并且没有通信能力,当服务器和客户端的新连接建立之后,需要通过 TcpSocket 类的带参构造将通信的描述符包装成一个通信对象,这样就可以使用这个对象和客户端通信了。 类声明 class TcpServer { public: TcpServer(); ~TcpServer(); int setListen(unsigned short port); Tc...
MySocket类是一个 C++ 套接字类,封装了在 Windows 平台上使用原生网络 API 进行同步远程通信的基本功能,该类需要使用多字节编码模式,服务端与客户端均需要引入此类,在项目头文件中均需要新建MySocket.hpp文件。 完整代码如下所示; 代码语言:javascript
Socket是封装了TCP协议,让我们更容易使用TCP协议。TCP协议在OSI模型中属于四层协议,即传输层协议。 TCP,中文叫传输控制协议,它是一种面向连接的协议,就是说它通信前必须先连接,再能通信。设计TCP这种协议的目的,是为了实现在网络中传输数据包,所以几乎所有网络编程都会涉及TCP协议,就连HTTP协议也是基于TCP来完成数据...
通过通信流程可以看出服务器和客户端有些操作步骤是相同的,因此封装的功能函数是可以共用的,相关的通信函数声明如下: /// 服务器 /// /// int bindSocket(int lfd, unsigned short port); int setListen(int lfd); int acceptConn(int lfd, struct sockaddr_in *addr); ...
gSo, m); //注意这个并不只是收取一行 printf("\r\nRecvBuf:\r\n"); printf(rs->str);这是通讯过程,代码并不复杂,大家可以看到简单封装后并不复杂,所以按自己顺手的封装一下很有必要.以下是完整代码:(文件名 socket_test1.c)#include#include#include#include#include "lstring.c"#include "...
|文件名称|:CommSocket.h |文件标识|:通信模块 |摘 要|: 封装了在套接字上的各种通信操作。 |当前版本|: |作 者|:张涛 |完成日期|: |取代版本|: |原 作者|:张涛 |完成日期|: ===*/ #pragma once extern"C" { __declspec(dllexport)void__stdcall CommSocketInit(); __declspec(dllexport)void...