C语言进行Linux网络编程

小微 科技C语言进行Linux网络编程已关闭评论129字数 1358阅读模式
摘要之前介绍了网络字节序。网络编程之网络字节序详解今天就来实现一下简单的网络程序。先看几个函数// 创建socket套接字int socket;// 绑定服务器地址int bind;/...

以前介绍了网络字节序。网络编程之网络字节序详解

今天就来实现一下简单的网络程序。文章源自微观生活(93wg.com)微观生活-https://93wg.com/6307.html

先看几个函数文章源自微观生活(93wg.com)微观生活-https://93wg.com/6307.html

// 创立socket套接字
int socket;
// 绑定服务器地址
int bind;
// 接管连接
int accept;
// 连接服务器
int connect;

服务器端程序:文章源自微观生活(93wg.com)微观生活-https://93wg.com/6307.html

include <stdlib.h>
include <unistd.h>
include <sys/socket.h>文章源自微观生活(93wg.com)微观生活-https://93wg.com/6307.html

typedef struct _MSG {
int id;
short length;
short reserve;
char content[100];
} MSG;文章源自微观生活(93wg.com)微观生活-https://93wg.com/6307.html

int main
{
int serv_sock;
int clnt_sock;文章源自微观生活(93wg.com)微观生活-https://93wg.com/6307.html

struct sockaddr_in serv_addr;
struct sockaddr_in clnt_addr;
socklen_t clnt_addr_size;文章源自微观生活(93wg.com)微观生活-https://93wg.com/6307.html

char message[] = &34;;文章源自微观生活(93wg.com)微观生活-https://93wg.com/6307.html

if
{
printf;
return -1;
}文章源自微观生活(93wg.com)微观生活-https://93wg.com/6307.html

serv_sock = socket;
if {
printf;
return -1;
}文章源自微观生活(93wg.com)微观生活-https://93wg.com/6307.html

memset);
serv_addr.sin_family = AF_INET;
// 转换为网络字节序,INADDR_ANY表示绑定本机所有ip地址
serv_addr.sin_addr.s_addr = htonl;
// 将端口转换为网络字节序
serv_addr.sin_port = htons);

if &serv_addr, sizeof) == -1) {
printf;
return -1;
}

if == -1) {
printf;
return -1;
}

clnt_addr_size = sizeof;
clnt_sock = accept&clnt_addr, &clnt_addr_size);
if {
printf;
}

for {
MSG msg;
msg.id = htonl;
msg.length = htons);
msg.reserve = htons;
strcpy;

write&msg, sizeof);
}

close;
close;

return 0;
}

客户端程序:

include <stdlib.h>
include <unistd.h>
include <sys/socket.h>

typedef struct _MSG {
int id;
short length;
short reserve;
char content[100];
} MSG;

int main
{
int sock;
struct sockaddr_in serv_addr;
int str_len;

if
{
printf;
return -1;
}

sock = socket;
if {
printf;
return -1;
}

memset);
serv_addr.sin_family = AF_INET;
serv_addr.sin_addr.s_addr = inet_addr;
serv_addr.sin_port = htons);

if &serv_addr, sizeof) == -1) {
printf;
return -1;
}

for {
MSG msg;
str_len = read);
if {
printf;
break;
}
msg.id = ntohl;
msg.length = ntohs;
printf : %3d, %3d, %s\\n&

以上就是微观生活(93wg.com)关于“C语言进行Linux网络编程”的详细内容,希望对大家有所帮助!

继续阅读
 
小微
  • 版权声明: 本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们(管理员邮箱:81118366@qq.com),情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!
  • 转载请务必保留本文链接:https://93wg.com/6307.html