新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 嵌入式Linux網(wǎng)絡編程之:網(wǎng)絡基礎編程

嵌入式Linux網(wǎng)絡編程之:網(wǎng)絡基礎編程

作者: 時間:2013-09-13 來源:網(wǎng)絡 收藏

本文引用地址:http://2s4d.com/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);

}

/*地址解析函數(shù)*/

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

{

perror(gethostbyname);

exit(1);

}

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

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

/*創(chuàng)建socket*/

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

{

perror(socket);

exit(1);

}

/*設置sockaddr_in結(jié)構(gòu)體中相關參數(shù)*/

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);

/*調(diào)用connect函數(shù)主動發(fā)起對服務器端的連接*/

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

sizeof(structsockaddr))==-1)

{

perror(connect);

exit(1);

}

/*發(fā)送消息給服務器端*/

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

{

perror(send);

exit(1);

}

close(sockfd);

exit(0);

}

在運行時需要先啟動服務器端,再啟動客戶端。這里可以把服務器端下載到開發(fā)板上,客戶端在宿主機上運行,然后配置雙方的IP地址,在確保雙方可以通信(如使用ping命令驗證)的情況下運行該程序即可。

$./server

Socketid=3

Bindsuccess!

Listening....

Receivedamessage:Hello,Server!

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

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

linux相關文章:linux教程



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

評論


相關推薦

技術(shù)專區(qū)

關閉