1 Star 3 Fork 2

wenjieshi/Linux-Network-Programming

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
lesson-01
lesson-02
lesson-03
lesson-04
lesson-05
lesson-08
client.c
message.c
message.h
server.c
lesson-09
lesson-10
lesson-11
lesson-12
lesson-13
lesson-14
lesson-15
lesson-16
lesson-17
network-tools/NetAssist
参考书籍
LICENSE
Linux网络开发必学教程.png
Linux网络编程学习笔记.md
README.md
克隆/下载
server.c 1.52 KB
一键复制 编辑 原始数据 按行查看 历史
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
int main()
{
int server = 0;
struct sockaddr_in saddr = {0};
int client = 0;
struct sockaddr_in caddr = {0};
socklen_t asize = 0;
int len = 0;
char buff[64] = {0};
int r = 0;
server = socket(PF_INET, SOCK_STREAM, 0);
if (server == -1) {
printf("server socket error\n");
return -1;
}
saddr.sin_family = AF_INET;
saddr.sin_addr.s_addr = htonl(INADDR_ANY);
saddr.sin_port = htons(8888);
if (bind(server, (struct sockaddr *)&saddr, sizeof(saddr)) == -1) {
printf("server bind error\n");
return -1;
}
if (listen(server, 1) == -1) {
printf("server listen error\n");
return -1;
}
printf("server start success\n");
while (1) {
asize = sizeof(caddr);
client = accept(server, (struct sockaddr *)&caddr, &asize);
if (client == -1) {
printf("client accept error\n");
return -1;
}
printf("client: %d\n", client);
do {
r = recv(client, buff, sizeof(buff), 0);
if( r > 0 ) {
int i = 0;
for (i = 0; i < r; i++)
{
printf("%02X", buff[i]);
}
printf("\n");
}
} while ( r > 0 );
printf("\n");
close(client);
}
close(server);
return 0;
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C
1
https://gitee.com/wenjieshi/linux-network-programming.git
git@gitee.com:wenjieshi/linux-network-programming.git
wenjieshi
linux-network-programming
Linux-Network-Programming
master

搜索帮助