久久婷婷香蕉热狠狠综合,精品无码国产自产拍在线观看蜜,寡妇房东在做爰3,中文字幕日本人妻久久久免费,国产成人精品三上悠亚久久

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 學習筆記 > 網絡編程實(shi)驗一-TCP通信(xin)

網絡編(bian)程實驗一(yi)-TCP通信 時間:2018-07-30      來源:未知

網絡通信實驗

1.1 TCP通信

【實驗目的】

熟練掌握tcp服務器與客(ke)戶端的搭(da)建(jian)以(yi)及(ji)tcp通信(xin)的特點。

【實驗內容】

本實(shi)驗通過一個簡單(dan)的tcp服務(wu)器端,接收客戶端的連接請求,并發送(song)歡迎信息。

【實驗內容】

服務器(qi)程序代碼:

#include

#include /* See NOTES */

#include

#include

#include

#include

#include

#define backlog 1024

int main(void)

{

int listenfd;

int ret;

struct sockaddr_in addr;

bzero(&addr,sizeof(addr));

addr.sin_family=PF_INET;

addr.sin_port = htons(8888);

addr.sin_addr.s_addr = inet_addr("127.0.0.1");

listenfd = socket(PF_INET,SOCK_STREAM,0);

if(listenfd==-1)

{

perror("socket");

exit(EXIT_FAILURE);

}

ret = bind(listenfd, (struct sockaddr *)&addr,sizeof(addr));

if(ret==-1)

{

perror("bind");

exit(EXIT_FAILURE);

}

listen(listenfd,backlog);

int connfd = accept(listenfd,NULL,NULL);

printf("connect a client !\n");

char buf[1024];

while(1)

{

// usleep(10);

bzero(buf,sizeof(buf));

ret = recv(connfd,buf,sizeof(buf),0);

if(ret ==-1)

{

perror("recv");

exit(EXIT_FAILURE);

}

else if(ret == 0)

{

printf("client quit\n");

break;

}

else

{

printf("recv %d bytes,buf is %s\n",ret,buf);

}

}

close(connfd);

close(listenfd);

return 0;

}

客戶端程序代碼:

#include

#include /* See NOTES */

#include

#include

#include

#include

#include

#include

int main(void)

{

int client_fd;

int ret;

client_fd = socket(PF_INET,SOCK_STREAM,0);

if(client_fd == -1)

{

perror("socket");

exit(EXIT_FAILURE);

}

struct sockaddr_in sevaddr;

sevaddr.sin_family = PF_INET;

sevaddr.sin_port = htons(8888);

sevaddr.sin_addr.s_addr = inet_addr("127.0.0.1");

ret = connect(client_fd,(struct sockaddr *)&sevaddr,sizeof(sevaddr));

if(ret ==-1)

{

perror("connect");

exit(EXIT_FAILURE);

}

char buf[1024];

strcpy(buf,"hello");

int i;

for(i=0;i<20;i++)

{

send(client_fd,"world",5,0);

send(client_fd,"hello",5,0);

}

close(client_fd);

return 0;

}

【實驗步(bu)驟】

1. 編譯后(hou)運行(xing)服(fu)務器(qi)程(cheng)序(xu)與客(ke)戶(hu)端程(cheng)序(xu),查看結果

2. 修改服務(wu)器程序,解開(kai)注(zhu)釋(shi)(// usleep(10)) 編譯(yi)后運行(xing),試分析(xi)結果,

3. 對于粘包(bao)問題,如何解決。

4. 思考題:tcp客(ke)戶端一次發送40960字節。tcp服務器端一次能接受完嗎?發送較大數據的時候應該注意什么問題。

發送大文件時:

1.先發文件大小

2.再發文(wen)件數據

上一篇:sqlite3數據庫常用指令及函數接口介紹

下一篇:c++運算符重載學習總結

熱(re)點文章推(tui)薦
華清學(xue)員(yuan)就業榜單(dan)
高薪(xin)學(xue)員經驗分享
熱(re)點新聞(wen)推薦
前臺專線:010-82525158 企業培(pei)訓洽談專(zhuan)線:010-82525379 院校合作洽談(tan)專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,,京公海網安備11010802025203號

回到頂部