热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

c++中TCP客户端与服务端示例

客户端:新版本中,加入了#include#pragmacomment(lib,Ws2_32.lib)进行预编译#include

客户端:

新版本中,加入了#include #pragma comment(lib, "Ws2_32.lib")进行预编译


#include
#include
#include
#include
#pragma comment(lib, "Ws2_32.lib")class tcpClient{public:tcpClient() {}void buildClient(){std::cout <<"### TCP/IP Client Demo ###" <" < " <#include int socket(int domain, int type, int protocol);1.domain表示协议簇&#xff0c;常用协议簇有:AF_UNIX&#xff08;本机通信&#xff09;AF_INET&#xff08;TCP/IP – IPv4&#xff09;AF_INET6&#xff08;TCP/IP – IPv6&#xff09;2.type表示套接字类型,常用套接字有:SOCK_STREAM&#xff08;TCP流&#xff09;SOCK_DGRAM&#xff08;UDP数据报&#xff09;SOCK_RAW&#xff08;原始套接字&#xff09;3.最后一个 “protocol”一般设置为“0”&#xff0c;也就是当确定套接字使用的协议簇和类型时&#xff0c;这个参数的值就为0&#xff0c;但是有时候创建原始套接字时&#xff0c;并不知道要使用的协议簇和类型&#xff0c;也就是domain参数未知情况下&#xff0c;这时protocol这个参数就起作用了&#xff0c;它可以确定协议的种类。4.socket是一个函数&#xff0c;那么它也有返回值&#xff0c;当套接字创建成功时&#xff0c;返回套接字&#xff0c;失败返回“-1”&#xff0c;错误代码则写入“errno”中。*/SOCKET sockClient &#61; socket(AF_INET, SOCK_STREAM, 0);if (INVALID_SOCKET &#61;&#61; sockClient) {std::cout <<"[E] Create socket failed! Error code is: " <中定义&#xff0c;sockaddr的缺陷是&#xff1a;sa_data把目标地址和端口信息混在一起了&#xff0c;如下&#xff1a;struct sockaddr {sa_family_t sin_family;//地址族char sa_data[14]; //14字节&#xff0c;包含套接字中的目标地址和端口信息};2.sockaddr_in:sockaddr_in在头文件#include或#include 中定义&#xff0c;该结构体解决了sockaddr的缺陷&#xff0c;把port和addr 分开储存在两个变量中sin_family:地址族sin_port:端口sin_addr:32位IP地址sin_zero:不需要*/SOCKADDR_IN addrServer;inet_pton(AF_INET, "127.0.0.1", &addrServer.sin_addr.s_addr);//addrServer.sin_addr.s_addr &#61; inet_addr("127.0.0.1") /*inet_addr(m_server_addr)*/;addrServer.sin_family &#61; AF_INET;addrServer.sin_port &#61; htons(8000)/*htons(m_server_port)*/;//std::cout <<"[I] Current addr is: " <> strBuf;send(sockClient, strBuf.data(), strBuf.length(), 0);char recvBuf[100] &#61; { 0 };recv(sockClient, recvBuf, 100, 0);std::cout <<"[I] Receive data from server: " <

服务端:


#include
#include
#include#pragma comment(lib, "Ws2_32.lib")class tcpServer{public:tcpServer() {}void buildServer(){std::cout <<"### TCP/IP Server Demo ###" <" <

 


推荐阅读
author-avatar
小超201209
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有