C/C++网络编程:TCP基础编程
2021/11/16 17:10:51
本文主要是介绍C/C++网络编程:TCP基础编程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
C/C++网络编程:TCP基础编程
- TCP Server(Linux)demo
#include <stdio.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <unistd.h> #define CHECK_POINT(x, y) {if((x) < 0){printf("%s error!\n", y);}} typedef struct sockaddr sockaddr; typedef struct sockaddr_in sockaddr_in; const char * ip = "127.0.0.1"; const uint16_t port = 39000; int main() { int sock, ret; sockaddr_in addr, peer; addr.sin_family = AF_INET; addr.sin_addr.s_addr = inet_addr(ip); addr.sin_port = htons(39000); sock = socket(AF_INET, SOCK_STREAM, 0); ret = bind(sock, (sockaddr *)&addr, sizeof(addr)); CHECK_POINT(ret, "bind"); ret = listen(sock, 5); CHECK_POINT(ret, "listen"); while(true) { printf("TCP Server Running...\n"); socklen_t peer_len = sizeof(peer); ret = accept(sock, (sockaddr *)&peer, &peer_len); char * peer_ip = inet_ntoa(peer.sin_addr); uint16_t peer_port = ntohs(peer.sin_port); printf("accept from %s:%d connection...\n", peer_ip, peer_port); } return 0; }
- TCP Client(Linux)demo
#include <stdio.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> // #include <winsock2.h> #include <unistd.h> #define CHECK_POINT(x, y) {if((x) < 0){printf("%s error!\n", y);}} typedef struct sockaddr sockaddr; typedef struct sockaddr_in sockaddr_in; const char * ip = "127.0.0.1"; const ushort port = 39000; int main() { int sock, ret; sockaddr_in addr; addr.sin_family = AF_INET; addr.sin_addr.s_addr = inet_addr(ip); addr.sin_port = htons(port); sock = socket(AF_INET, SOCK_STREAM, 0); ret = connect(sock, (sockaddr *)&addr, sizeof(addr)); CHECK_POINT(ret, "connect"); return 0; }
- TCP Client(Windows)demo
#include <stdio.h> // #include <sys/socket.h> // #include <netinet/in.h> // #include <arpa/inet.h> #include <winsock2.h> #include <unistd.h> #define CHECK_POINT(x, y) {if((x) < 0){printf("%s error!\n", y);}} typedef struct sockaddr sockaddr; typedef struct sockaddr_in sockaddr_in; const char * ip = "127.0.0.1"; const USHORT port = 39000; int main() { int sock, ret; sockaddr_in addr; addr.sin_family = AF_INET; addr.sin_addr.s_addr = inet_addr(ip); addr.sin_port = htons(port); WSADATA wsaData; if(WSAStartup(MAKEWORD(2, 2), &wsaData) != 0) printf("WSAStartup error!\n"); sock = socket(AF_INET, SOCK_STREAM, 0); ret = connect(sock, (sockaddr *)&addr, sizeof(addr)); CHECK_POINT(ret, "connect"); return 0; }
这篇关于C/C++网络编程:TCP基础编程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享