freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

【課程設(shè)計】基于udp協(xié)議采用winsock構(gòu)建網(wǎng)絡(luò)聊天室-文庫吧資料

2025-06-12 19:13本頁面
  

【正文】 DGRAM, 0)。在同一時間處理對個連接請求的服務(wù)器通常使用listen 函數(shù):如果一個連接請求到達(dá),并且排隊已滿,客戶端將接收WSAECONNREFUSED錯誤。listen 僅應(yīng)用在支持連接的套節(jié)字上,如SOCK_STREAM類型。 設(shè)置套節(jié)字進(jìn)入監(jiān)聽狀態(tài)listen 函數(shù)置套節(jié)字進(jìn)入監(jiān)聽狀態(tài)。ServerAddr,sizeof(ServerAddr))==SOCKET_ERROR) MessageBox(NULL,Bind Port Failed!,Error,0)。 =htons((u_short)serPort)。 serPort=GetDlgItemInt(hDlg,IDC_Sport,amp。將套節(jié)字與IP地址和端口號綁定的核心程序代碼:=AF_INET。bind 函數(shù)通過安排一個本地名稱到未命名的socket建立此socket的本地關(guān)聯(lián)。 //地址的長度bind 函數(shù)用在沒有建立連接的套節(jié)字上,它的作用是綁定面向連接的或者無連接的套節(jié)字。前者可以通過IP地址來確定,而后者則由端口號來確定的。 } 綁定套節(jié)字到指定的IP地址和端口號成功創(chuàng)建了Socket之后,就應(yīng)該選定通信的對象。 //關(guān)閉套接字 ServerSock=0。函數(shù)用法如下:int closesocket(SOCKET s)。當(dāng)不使用socket創(chuàng)建的套節(jié)字時,應(yīng)該調(diào)用closesocket函數(shù)將它關(guān)閉。當(dāng)type參數(shù)指定為SOCK_STREAM和SOCK_DGRAM時,系統(tǒng)已經(jīng)明確確定使用UDP協(xié)議來工作,所以protocol參數(shù)可以指定為0。 type 參數(shù)用來指定套節(jié)字的類型。使用套節(jié)字之前,必須調(diào)用socket函數(shù)創(chuàng)建一個套節(jié)字對象,此函數(shù)調(diào)用成功將返回套節(jié)字的句柄。所有的通信在建立之前都有要創(chuàng)建一個Socket。 WSACleanup()。wsaData)。 WSADATA wsaData。LPWSADATA lpWSAData);每一個對WSAStartup的調(diào)用必須對應(yīng)一個對WSAClearnup的調(diào)用,這個函數(shù)釋放Winsock庫。僅當(dāng)這個函數(shù)成功執(zhí)行之后,應(yīng)用程序才能調(diào)用其他的Winsock API 函數(shù)。WSAstartup必須是應(yīng)用程序首先調(diào)用的Winsock函數(shù)。 服務(wù)器端程序設(shè)計 Winsock庫德裝入、初始化和釋放,VC++在默認(rèn)的情況下并沒有連接到該庫,如果想使用Winsock API,就必須包含相應(yīng)的庫文件。不過,Windows C主要使用API函數(shù),而網(wǎng)絡(luò)編程則主要使用Winsock提供的API函數(shù)。這種方式不提供數(shù)據(jù)無錯保證,數(shù)據(jù)可能丟失或重復(fù)并且接收順序混亂,后發(fā)出的報文可能會先收到,并且報文的長度是有限制的;不過,由于取消了重發(fā)校驗機(jī)制,能夠達(dá)到較高的通信速率,可以用于對數(shù)據(jù)可靠性要求不高的通信,如實時的語音、圖像傳送和廣播消息等。另外,學(xué)習(xí)Windows C程序設(shè)計,還有助于更深入地了解Windows的內(nèi)幕和Windows API。在一般情況下,Visual C++編程方式編寫的程序源代碼量小、開發(fā)時的工作量小、工作難度也較小,但編譯后的代碼量較大,運(yùn)行速度略低;而Windows C編程方式編寫的程序源代碼量雖然較大,但可執(zhí)行代碼效率高。在數(shù)據(jù)傳輸協(xié)議中,我們使用UDP協(xié)議,UDP協(xié)議是無連接的協(xié)議,在服務(wù)器端不調(diào)用listen函數(shù)進(jìn)行監(jiān)聽,也不調(diào)用accept函數(shù)建立連接, 其操作流程圖如下圖32所示:首先,用socket函數(shù)建立套接字,然后根據(jù)本地的IP進(jìn)行綁定,然后就可以通過使用send 函數(shù)和 reve 函數(shù)來進(jìn)行數(shù)據(jù)的發(fā)送和接收了。int recvfrom(SOCKET s,char FAR * buf,int len,int flags,struct sockaddr FAR * from,int FAR* fromlen)。它們的原形如下:int sendto( SOCKET s, //用于發(fā)送數(shù)據(jù)的套節(jié)字 Const char FAR *buf, //指向發(fā)送數(shù)據(jù)的緩沖區(qū) int len, //要發(fā)送數(shù)據(jù)的長度 int flags, //一般指定為0//指向一個包含目標(biāo)地址和端口號的sockaddr_in 結(jié)構(gòu) const struct sockaddr * to, int tolen)。 客戶端原理(1)創(chuàng)建套節(jié)字(soc
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1