本文實例講述了PHP的Socket通訊之UDP通訊方法。分享給大家供大家參考。具體如下:
我們知道, IP包頭有一個16bit的長度, 對應(yīng)的二進(jìn)位最大值是2^16 -1,也就是說一個IP包整個長度的最大值是2^16 - 1 字節(jié), 如果考慮UDP通信, 那麼除去IP頭的20個字節(jié), 除去UDP頭的8個字節(jié), 還剩2^16 - 1 - 20 - 8 字節(jié)。讓我們來玩玩程式(本文只以客戶端發(fā)資料為例)。
? ? ? ? ?程式:
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <unistd.h> #include <errno.h> int main(int argc, char *argv[]) { struct sockaddr_in srvAddr; bzero(&srvAddr, sizeof(srvAddr)); srvAddr.sin_family = AF_INET; srvAddr.sin_addr.s_addr = inet_addr("127.0.0.1"); srvAddr.sin_port = htons(8888); int iSock = socket(AF_INET, SOCK_DGRAM, 0); // udp char szBuf[1024 * 64 -1 - 20 - 8] = {0}; int iRet = sendto(iSock, szBuf, sizeof(szBuf), 0, (struct sockaddr *)&srvAddr, sizeof(srvAddr)); printf("send size is %d, iRet is %d, errmsg[%s]\n", sizeof(szBuf), iRet, strerror(errno)); close(iSock); return 0; }
?結(jié)果:
?
send size is 65507, iRet is 65507, errmsg[Success]
#??#? ? ? ?好, 我們讓send size變大1個位元組, 試試看:
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <unistd.h> #include <errno.h> int main(int argc, char *argv[]) { struct sockaddr_in srvAddr; bzero(&srvAddr, sizeof(srvAddr)); srvAddr.sin_family = AF_INET; srvAddr.sin_addr.s_addr = inet_addr("127.0.0.1"); srvAddr.sin_port = htons(8888); int iSock = socket(AF_INET, SOCK_DGRAM, 0); // udp char szBuf[1024 * 64 - 20 - 8] = {0}; int iRet = sendto(iSock, szBuf, sizeof(szBuf), 0, (struct sockaddr *)&srvAddr, sizeof(srvAddr)); printf("send size is %d, iRet is %d, errmsg[%s]\n", sizeof(szBuf), iRet, strerror(errno)); close(iSock); return 0; }
?
?? 結(jié)果:
?
send size is 65508, iRet is -1, errmsg[Message too long]
相關(guān)推薦:
##php socket通訊(tcp/udp)實例分析_php技巧
以上是用實際程式來測試udp sendto函數(shù)的最大發(fā)包大小---65507的詳細(xì)內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!
本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool
免費脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章
如何修復(fù)KB5060999無法在Windows 11中安裝?
1 個月前
By DDD
Oguri Cap Build Guide |漂亮的德比志
1 週前
By Jack chen
指南:恆星刀片保存文件位置/保存文件丟失/不保存
3 週前
By DDD
沙丘:覺醒 - 高級行星學(xué)家Quest演練
3 週前
By Jack chen
Agnes Tachyon Build Guide |漂亮的德比志
1 週前
By Jack chen

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)
