亚洲精品一二区_国产黄色片网站_99久久久成人国产精品_蜜臀网_国产精品一区二区三区免费_成人av中文字幕_91精品国产欧美一区二区成人

當(dāng)前位置:首頁 > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 學(xué)習(xí)筆記 > 網(wǎng)絡(luò)編程實(shí)驗(yàn)一-TCP通信

網(wǎng)絡(luò)編程實(shí)驗(yàn)一-TCP通信 時(shí)間:2018-07-30      來源:未知

網(wǎng)絡(luò)通信實(shí)驗(yàn)

1.1 TCP通信

【實(shí)驗(yàn)?zāi)康摹?/p>

熟練掌握tcp服務(wù)器與客戶端的搭建以及tcp通信的特點(diǎn)。

【實(shí)驗(yàn)內(nèi)容】

本實(shí)驗(yàn)通過一個(gè)簡單的tcp服務(wù)器端,接收客戶端的連接請求,并發(fā)送歡迎信息。

【實(shí)驗(yàn)內(nèi)容】

服務(wù)器程序代碼:

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

}

【實(shí)驗(yàn)步驟】

1. 編譯后運(yùn)行服務(wù)器程序與客戶端程序,查看結(jié)果

2. 修改服務(wù)器程序,解開注釋(// usleep(10)) 編譯后運(yùn)行,試分析結(jié)果,

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

4. 思考題:tcp客戶端一次發(fā)送40960字節(jié)。tcp服務(wù)器端一次能接受完嗎?發(fā)送較大數(shù)據(jù)的時(shí)候應(yīng)該注意什么問題。

發(fā)送大文件時(shí):

1.先發(fā)文件大小

2.再發(fā)文件數(shù)據(jù)

上一篇:sqlite3數(shù)據(jù)庫常用指令及函數(shù)接口介紹

下一篇:c++運(yùn)算符重載學(xué)習(xí)總結(jié)

熱點(diǎn)文章推薦
華清學(xué)員就業(yè)榜單
高薪學(xué)員經(jīng)驗(yàn)分享
熱點(diǎn)新聞推薦
前臺(tái)專線:010-82525158 企業(yè)培訓(xùn)洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠(yuǎn)見科技集團(tuán)有限公司 版權(quán)所有 ,京ICP備16055225號(hào)-5京公海網(wǎng)安備11010802025203號(hào)

回到頂部

主站蜘蛛池模板: 热热热热热色 | 欧洲精品在线观看 | 亚洲一区二区三区日本久久九 | 激情五月六月婷婷 | 国产成人99精品免费观看 | 美美哒中文韩国在线观看 | 亚洲全网成人资源在线观看 | 久久精品视频久久 | 欧美一区二区三区香蕉视 | 国产大片91精品免费观看不卡 | 免费在线不卡视频 | 久久久青草青青亚洲国产免观 | 亚洲qingse中文在线 | 九色九色九色在线综合888 | 精品午夜久久网成年网 | 亚洲人成在线观看一区二区 | 久久99草 | 国产片毛片 | 亚洲天堂成人在线 | 最近资源中文字幕4 | 九九热精品视频在线播放 | 成人毛片免费看 | 波多野吉衣一区二区三区在线观看 | www亚洲成人 | 九九热在线免费视频 | 国产高清特黄无遮挡大片 | 99精品这里只有精品高清视频 | 欧美中日韩在线 | 国产又黄又爽视频免费观看 | aaa毛片视频免费观看 | 色综合久久中文字幕网 | 欧美精品播放 | 国产一区二区视频在线观看 | 成人午夜精品久久不卡 | 国产欧美成人 | 成人中文网 | 亚洲天堂亚洲天堂 | 青青影院在线观看 | 人人洗澡人人洗澡人人 | 日本特黄绿像大片免费看 | 欧美一区2区|