日韩在线免费播放-日韩在线免费av-日韩在线免费-日韩在线毛片-国产高清不卡视频-国产高清不卡

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

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

網絡通信實驗

1.1 TCP通信

【實驗目的】

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

【實驗內容】

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

【實驗內容】

服務器程序代碼:

#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客戶端一次發送40960字節。tcp服務器端一次能接受完嗎?發送較大數據的時候應該注意什么問題。

發送大文件時:

1.先發文件大小

2.再發文件數據

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

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

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

回到頂部

主站蜘蛛池模板: 国产在线 观看| 女同视频在线| 韩国三级播放| 最贵的香烟| 考死2:教学实习| 王顺明| 六年级上册脱式计算题 | 少爷爱上我台湾版双男主电视剧| 都市频道今日节目表| 香港九龙图库精选资料| 猛女| 抖音网站入口| 风云雄霸天下| 地震的现场急救原则包括| 黑帮大佬和我的三百六十五| 日韩电影免费观看高清完整版在线 | 小野寺律| 我的一级兄弟 电影| 董佳妮| 武林外传豆瓣| 一级特黄新婚之夜| 色域在线| 电影《东莞往事》在线观看免费| 十月电影| 相邻数的数学题| 最新好看电影| 小小安妮| 高手论坛| 杨子姗演过的电影电视剧| xiuren秀人网站入口| 如意电视剧| 大树君| 局中人韩国2015| 不要抛弃我| 赛虎| 婚前品味| 荒笛子简谱| 假如我是一坨屎作文| 圆谷一夫| 王渝萱演过的所有影视作品| 女村长|