服务器端
#include
#include
#include
#include
#include
#include
#include
int main()
{
//创建套接字
int serv_sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
//将套接字和IP、端口绑定
struct sockaddr_in serv_addr;
memset(&serv_addr, 0, sizeof(serv_addr));
//每个字节都用0填充
serv_addr.sin_family = AF_INET;
//使用IPv4地址
serv_addr.sin_addr.s_addr = inet_addr("127.0.0.1");
//具体的IP地址
serv_addr.sin_port = htons(1234);
//端口
bind(serv_sock, (struct sockaddr*)&serv_addr, sizeof(serv_addr));
//进入监听状态,等待用户发起请求
listen(serv_sock, 20);
//接收客户端请求
struct sockaddr_in clnt_addr;
socklen_t clnt_addr_size = sizeof(clnt_addr);
int clnt_sock = accept(serv_sock, (struct sockaddr*)&clnt_addr, &clnt_addr_size);
//向客户端发送数据
char str[] = "Hello World!";
write(clnt_sock, str, sizeof(str));
//关闭套接字
close(clnt_sock);
close(serv_sock);
return 0;
}
客户端
#include
#include
#include
#include
#include
#include
int main()
{
//创建套接字
int sock = socket(AF_INET, SOCK_STREAM, 0);
//向服务器(特定的IP和端口)发起请求
struct sockaddr_in serv_addr;
memset(&serv_addr, 0, sizeof(serv_addr));
//每个字节都用0填充
serv_addr.sin_family = AF_INET;
//使用IPv4地址
serv_addr.sin_addr.s_addr = inet_addr("127.0.0.1");
//具体的IP地址
serv_addr.sin_port = htons(1234);
//端口
connect(sock, (struct sockaddr*)&serv_addr, sizeof(serv_addr));
//读取服务器传回的数据
}
推荐阅读
- 网络协议|Http协议详解
- linux远程开发|linux远程开发——网络通信(客户端与服务器建立连接)
- Linux之fgrep命令
- OpenWrt|OpenWrt学习总结(2)编译OpenWrt过程中整理的软件包下载网址
- docker|Centos8的docker安装教程
- 学习新编程语言的 5 个小知识
- Linux之file命令
- 如何用Elementor快速建网站
- web安全|网络安全笔记