当前位置:首页 > 代码 > 正文

linux局域网通信c语言源代码的简单介绍

admin 发布:2022-12-19 19:32 153


本篇文章给大家谈谈linux局域网通信c语言源代码,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

如何在linux上编写c语言程序代码

linux终端下,编译C语言程序步骤为:

采用vi进行源代码编写,编写完成后,:wq存盘退出,如:

vi test.c

在命令行下,运行gcc编译程序,生成执行码,如:

gcc -o test test.c

-o 表示指明生成的执行码名称

运行编译后的执行码

./test

linux下进程通信 C语言编写

这个真有点难度,linux下几乎只有标准C语言,没有像VC那样被修改了标准的语言,所以可以认为linux下的C语言都是标准的。 这个程序要是所有的代码都自己写的话,会非常复杂的,并且操作系统也不允许你写这样的程序...

Linux系统中,C语言源程序的编辑编译运行

你定义的 "headfile.h"这个头文件因为你电脑上没有,所以你必须要自己创建一个文件存放代码。存放的位置就放到你XX.c文件的目录下就OK 。

现在你执行gcc -Wall XX.c 就会生成一个a.out文件。

只有执行./a.out 就可以执行程序了

当然你可以使用GDB调试程序。

在linux下如何用c语言来写一个socket编程的聊天小程序

源码如下:

//chat_one.c

#include sys/types.h

#include sys/socket.h

#include netinet/in.h

#include stdio.h

#include string.h

#include errno.h

#include malloc.h

#include sys/select.h

int main( int argc, char **argv)

{

struct sockaddr_in chatone, chattwo;

char pmsg[1000];

char *buf;

int chatone_fd;

int ret,i;

int len, msg_len;

fd_set fdset;

if ( argc 2 ){

printf("please input ip address\n");

return -1;

}

printf("server address is %s\n", argv[1]);

chattwo.sin_family = AF_INET;

chattwo.sin_port = htons(60002);

inet_pton(AF_INET, argv[1], chattwo.sin_addr.s_addr);

chatone.sin_family = AF_INET;

chatone.sin_port = htons(60000);

chatone.sin_addr.s_addr = INADDR_ANY;

chatone_fd = socket(PF_INET, SOCK_DGRAM, 0);

if ( -1 == chatone_fd ){

printf("create socket failed %s\n", strerror(errno));

return -1;

}

ret = bind(chatone_fd, (struct sockaddr *)chatone, sizeof(chatone));

if ( -1 == ret){

printf("bind failed %s \n", strerror(errno));

return -1;

}

for(i=0; i1000;i++){

FD_ZERO( fdset );

FD_SET ( 0, fdset);

FD_SET( chatone_fd, fdset);

if ( -1 == select ( chatone_fd+1, fdset, NULL, NULL, NULL) ){

continue;

}

if ( FD_ISSET( chatone_fd, fdset)){

recvfrom( chatone_fd, pmsg, 999, 0, NULL, 0);

printf("receive %s\n", pmsg);

}

else{

memset( pmsg, 0, 1000);

fgets(pmsg, 999, stdin);

len = sizeof(chattwo);

sendto( chatone_fd, pmsg, 1000, 0,\

(struct sockaddr*) chattwo, len);

printf("send %s\n", pmsg);

}

}

printf("sent %d packets\n", i);

close(chatone_fd);

return 0;

}

//chat_two.c

#include sys/types.h

#include sys/socket.h

#include netinet/in.h

#include stdio.h

#include string.h

#include errno.h

#include malloc.h

#include sys/select.h

int main( int argc, char **argv)

{

struct sockaddr_in chatone, chattwo;

char pmsg[1000];

char *buf;

int chattwo_fd;

int ret,i;

int len, msg_len;

fd_set fdset;

if ( argc 2 ){

printf("please input ip address\n");

return -1;

}

printf("server address is %s\n", argv[1]);

chattwo.sin_family = AF_INET;

chattwo.sin_port = htons(60002);

chattwo.sin_addr.s_addr = INADDR_ANY;

chatone.sin_family = AF_INET;

chatone.sin_port = htons(60000);

inet_pton(AF_INET, argv[1], chatone.sin_addr.s_addr);

chattwo_fd = socket(PF_INET, SOCK_DGRAM, 0);

if ( -1 == chattwo_fd ){

printf("create socket failed %s\n", strerror(errno));

return -1;

}

ret = bind(chattwo_fd, (struct sockaddr *)chattwo, sizeof(chattwo));

if ( -1 == ret){

printf("bind failed %s \n", strerror(errno));

return -1;

}

for(i=0; i1000;i++){

FD_ZERO( fdset );

FD_SET ( 0, fdset);

FD_SET( chattwo_fd, fdset);

if ( -1 == select ( chattwo_fd+1, fdset, NULL, NULL, NULL) ){

continue;

}

if ( FD_ISSET( chattwo_fd, fdset)){

recvfrom( chattwo_fd, pmsg, 999, 0, NULL, 0);

printf("receive: %s\n", pmsg);

}

else{

memset( pmsg, 0, 1000);

fgets(pmsg, 999, stdin);

len = sizeof(chatone);

sendto( chattwo_fd, pmsg, 1000, 0,\

(struct sockaddr*) chatone, len);

printf("send %s\n", pmsg);

}

}

printf("sent %d packets\n", i);

close(chattwo_fd);

return 0;

}

编译好这个两个程序就可以进行简单的通信了。

关于linux局域网通信c语言源代码和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://ahzz.com.cn/post/20625.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载