国产成人精品三级麻豆,色综合天天综合高清网,亚洲精品夜夜夜,国产成人综合在线女婷五月99播放,色婷婷色综合激情国产日韩

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

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

網絡通信實驗

1.1 TCP通信

【實驗目的】

熟練掌握tcp服務器與客戶端的搭建以及tcp通信的特點。

【實驗內容】

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

【實驗內容】

服務器程序代碼:

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

}

【實驗步驟】

1. 編譯后運行服務器程序與客戶端程序,查看結果

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

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

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

發(fā)送大文件時:

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

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

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

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

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

回到頂部