新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 嵌入式Linux网络编程之:网络基础编程

嵌入式Linux网络编程之:网络基础编程

作者:时间:2013-09-13来源:网络收藏

本文引用地址:http://www.eepw.com.cn/article/257116.htm

客户端的代码如下所示:

/*client.c*/

#includestdio.h>

#includestdlib.h>

#includeerrno.h>

#includestring.h>

#includenetdb.h>

#includesys/types.h>

#includenetinet/in.h>

#includesys/socket.h>

#definePORT4321

#defineBUFFER_SIZE1024

intmain(intargc,char*argv[])

{

intsockfd,sendbytes;

charbuf[BUFFER_SIZE];

structhostent*host;

structsockaddr_inserv_addr;

if(argc3)

{

fprintf(stderr,USAGE:./clientHostname(oripaddress)Textn);

exit(1);

}

/*地址解析函数*/

if((host=gethostbyname(argv[1]))==NULL)

{

perror(gethostbyname);

exit(1);

}

memset(buf,0,sizeof(buf));

sprintf(buf,%s,argv[2]);

/*创建socket*/

if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1)

{

perror(socket);

exit(1);

}

/*设置sockaddr_in结构体中相关参数*/

serv_addr.sin_family=AF_INET;

serv_addr.sin_port=htons(PORT);

serv_addr.sin_addr=*((structin_addr*)host->h_addr);

bzero((serv_addr.sin_zero),8);

/*调用connect函数主动发起对服务器端的连接*/

if(connect(sockfd,(structsockaddr*)serv_addr,

sizeof(structsockaddr))==-1)

{

perror(connect);

exit(1);

}

/*发送消息给服务器端*/

if((sendbytes=send(sockfd,buf,strlen(buf),0))==-1)

{

perror(send);

exit(1);

}

close(sockfd);

exit(0);

}

在运行时需要先启动服务器端,再启动客户端。这里可以把服务器端下载到开发板上,客户端在宿主机上运行,然后配置双方的IP地址,在确保双方可以通信(如使用ping命令验证)的情况下运行该程序即可。

$./server

Socketid=3

Bindsuccess!

Listening....

Receivedamessage:Hello,Server!

$./clientlocalhost(或者输入IP地址)Hello,Server!

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

linux相关文章:linux教程



上一页 1 2 3 4 5 6 下一页

评论


相关推荐

技术专区

关闭