目錄
什麼是udp
udp報文頭部
實現乙個udp伺服器
udp(user datagram prototocol 使用者資料報協議)
1.它是傳輸層的乙個協議
2.它是乙個無連線的協議(我們可以理解為發簡訊,不需要建立連線就可以傳送資料)
3.它是一種不可靠傳輸(因為它面向無連線,所以必然是一種不可靠的傳輸)
4.面向資料報(可以理解為像冰塊一樣一塊一塊傳送資料)
伺服器 server.c
int main(int argc, char* argv)
//建立socket ipv4 udp 不關心置0
int sockfd = socket(af_inet,sock_dgram,0);
//建立addr_in結構體,並初始化
struct sockaddr_in addr;
addr.sin_family = af_inet;
addr.sin_port = htons(atoi(argv[2]));
//伺服器端口號 atoi函式把字串轉換成整型 htons函式把埠號從主機位元組序轉成網路位元組序
addr.sin_addr.s_addr = inet_addr(argv[1]);
//ip位址轉換 將乙個點分十進位制的數轉化為二進位制 的網路位元組序的ipv4位址
//將伺服器ip和埠號進行繫結
if(bind(sockfd,(struct sockaddr*)&addr,sizeof(addr)) < 0)
//申請快取區收發資料
char buf[1024];
while(1)
}close(sockfd);
return 0;
}
客戶端client.c
int main(int argc,char* argv)
//建立socket ipv4 udp 指定協議 不關心置0
int sockfd = socket(af_inet,sock_dgram,0);
//建立addr_in結構體並初始化
struct sockaddr_in client;
client.sin_family = af_inet;
client.sin_port = htons(atoi(argv[2]));
client.sin_addr.s_addr = inet_addr(argv[1]);
//建立快取區,準備向伺服器傳送資料
printf("please enter : \n");
char buf[1024];
while(1)
buf[s-1] = '\0';
//sendto()函式: 向指定目的地傳送資料
//引數:sockfd 申請的套接字;buf 收到資料存放的快取區 ;strlen(buf) 已經寫在快取區的長度;0 操作方式,不關心置0;client為裝有傳送資料的目的位址快取區(指標); clientlen目的位址快取區長度(整型)
s = sendto(sockfd,buf,strlen(buf),0,(struct sockaddr*)&client,sizeof(client));
if(s < 0)
//sendto()函式:建立乙個接收對端ip&埠資訊的addr_in結構體server
struct sockaddr_in server;
socklen_t len = sizeof(server);
//引數:sockfd 申請的套接字;buf 收到資料存放的快取區 ;sizeof(buf)-1 最多存放的大小;
0 操作方式,不關心置0; &clien 指向攜帶有資料源位址資訊的緩衝區(指標); &clientlen 解析過程中
clientlen大小可能會發生變化,所以傳指標
s = recvfrom(sockfd,buf,sizeof(buf)-1,0,(struct sockaddr*)&server,&len);
if(s < 0)
//buf[s] = '/0';
//把轉化的資料再反轉輸出
printf("ip : %s , port : %d %s\n",inet_ntoa(server.sin_addr),ntohs(server.sin_port),buf);
}//關閉
close(sockfd);
return 0;
}
原來可以這樣
葉子有沒有腳?顯然沒有.可是卻可以飛遍天涯海角,真好.樹兒有沒有眼睛?顯然沒有.可是卻可以仰望天空,真好.岩石有沒有呼吸?顯然沒有.可是卻可以感受陽光,真好 草原有沒有笑臉?顯然沒有.可是卻充滿了收穫的喜悅,真好 人們有沒有魔幻的法力?顯然沒有.可是卻有美妙的夢境,真好.烏雲有沒有眼淚?顯然沒有.可...
原來事務隔離級別可以這樣理解
3.併發的問題 4.隔離級別 5.總結 一系列資料庫操作的集合,主要就是 curd 乙個有規矩的團體,一起行走 事務像原子一樣不可分割 要麼全部成功,不會出現只有部分操作成功 要麼全部失敗,進行回滾,回到最初的狀態,好像什麼也沒發生過 操作們要同生共死 事務 小白給小黑轉賬 事務使資料庫從乙個一致性...
英語原來這樣學!
最近重新學學習了一下sla文件,發現自己總是一不小心就跑偏了,每次都太過浮躁,從來沒有靜下心來思考過到底如何才能學好英語,身邊那麼多可利用的資源,自己卻總是不珍惜,還總是吐槽這個學習材料怎麼這麼難,不好學,實際這一切都是因為我不踏實,沒有做到專注的學習,總是學習英語的時候看手機,上網,這樣一心兩用才...