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

正文內(nèi)容

網(wǎng)絡(luò)編程-預(yù)覽頁

2025-08-25 13:50 上一頁面

下一頁面
 

【正文】 osesocket” 函數(shù)之后 但是在程序 結(jié) 束之前 /* This stuff cleansup winsock */ WSACleanup( )。 8/18/2022 11 socket (續(xù) ) ? SOCKET socket (int family, int type, int protocol)。 調(diào)用 accept將本地應(yīng)用程序阻塞起來,等待接收客戶端發(fā)來的連接請求。 釋放連接:使用 close原語單獨釋放連接。 8/18/2022 19 bind (續(xù) ) int bind (SOCKET sockfd, struct sockaddr* addr, int addrLen)。 /* Address Family To Be Used */ = htons (6666)。 // 14字節(jié)協(xié)議地址 }。 // IPV4地址 , 4 bytes char sin_zero[8]。 8/18/2022 22 ? unsigned long i_addr(char *address)。 ? char* i_ntoa(struct in_addr address) ? address是 IPv4地址結(jié)構(gòu),函數(shù)返回一指向包含點分 IP地址的靜態(tài)存儲區(qū)字符指針,如果錯誤則函數(shù)返回NULL 地址轉(zhuǎn)換函數(shù) (i_addr() 和 i_ntoa()) 8/18/2022 23 gethostname() ? 得到本機的名稱 ? int gethostname(char *hostname, int bufferLength) ? hostname是一個字符數(shù)組, bufferLength是該數(shù)組的長度。 // address family (., AF_INET) ? short h_length。 // IPV4地址結(jié)構(gòu) ? if ((phostent = gethostbyname()) == NULL) ? printf(gethostbyname() 錯誤: %d, WSAGetLastError())。 ? printf( %s, i_ntoa(in))。 ? 主機到網(wǎng)絡(luò) ? u_long htonl (u_long hostlong)。 8/18/2022 28 例子 : 創(chuàng)建 SOCKADDR_IN 下面的代碼演示了如何利用上面描述的 i_addr 和 htons 函數(shù)來創(chuàng)建sockaddr_in結(jié)構(gòu)。 // 將點分的 IP地址轉(zhuǎn)換為 4字節(jié)的整數(shù)并賦值給 s_addr域 = i_addr()。 // WinSock form int listen (SOCKET sockfd, int backlog)。 8/18/2022 32 SOCKET child_sock = accept (socket_id, (struct sockaddr_in *) client_addr, The size of the sockaddr_in structure for connecting client 一個新的已 連 接的 Socket (INVALID_SOCKET if error) 接受客 戶連 接的 Socket sizeof (client_addr)。 ? s是接受客戶連接的 Socket ? addr用于接收外來連接的地址信息,如果暫時不關(guān)心該地址信息,則可以置為 NULL ? pointerToAddrLen是 addr結(jié)構(gòu)的長度 ? 返回一個新的已連接的 Socket, 使用這個Socket可以和客戶進行通信,而原來的監(jiān)聽Socket仍然可以接受其他客戶的連接 . 8/18/2022 35 Accept()調(diào)用實例 ? SOCKET s。 // 連接的客戶地址 ? IN_ADDR clientIn。 ? = htons(2022)。 ? // 接受連接 ? clientSocket = accept(s, (sockaddr*)amp。 ? } ? else ? { ? memcpy(amp。 ? //... ? } ? } ? } ? } 8/18/2022 37 int status = connect (socket_id, (struct sockaddr_in *) addr, sizeof(addr))。 ? sockfd 由 socket() 調(diào)用返回 ? addr 是指向 sockaddr_in 結(jié)構(gòu)的指針,包含server IP 地址和端口號 ? addrLen sizeof (struct sockaddr_in) 8/18/2022 40 客戶同服務(wù)器建立連接示例 ? SOCKET s。 ? = htons(2022)。 ? } ? else ? { ? //... ? } 8/18/2022 41 int status = recv (socket_id, in_buffer, MAX_BUFFER_SIZE, 0)。 ? s是已經(jīng)連接的 Socket ? bytesToReceive指向用于接收數(shù)據(jù)的緩沖區(qū)的指針 ? nBytes是緩沖區(qū)的字節(jié)數(shù) ? flags ? 0, MSG_DONTROUTE, or MSG_OOB ? 當(dāng)調(diào)用成功, recv()返回被接收的字節(jié)數(shù);如果返回 0,則說明連接已經(jīng)被關(guān)閉;當(dāng)調(diào)用失敗,返回SOCKET_ERROR。 8/18/2022 44 recv()的典型用法 ? define BUFSIZE 1024 ? SOCKET s。 ? if( bytesRecv == SOCKET_ERROR ) ? { ? printf(recv() 調(diào)用錯誤: %d, WSAGetLastError())。 int left = BUFSIZE。 p += ret。 8/18/2022 48 send (續(xù) ) int send (SOCKET s, const char* bytesToSend, int nBytes, int flags)。 8/18/2022 49 Example define BUFSIZE 4096 char buf[BUFSIZE]。 if (ret == SOCKET_ERROR) { // 錯誤處理 } left = ret。當(dāng)客戶同服務(wù)器建立連接后,客戶會向服務(wù)器發(fā)送一個“來自客戶的消息”這樣的字符串,服務(wù)器以發(fā)送回字符串“歡迎連接服務(wù)器”作為響應(yīng)。 sock = socket( AF_INET, SOCK_DGRAM, 0)。 = AF_INET。addr, sizeof(addr)) == SOCKET_ERROR) { // 錯誤處理 } Fill in addr 8/18/2022 61 Basic Socket Calls (sendto) // Berkeley form int sendto(int s, const char* bytesToSend, int nBytes, int flags, struct sockaddr *to, int sizeOfSockaddr)。 ? sockaddr_in addr。 ? s = socket(AF_INET, SOCK_DGRAM, 0)。 ? // 填充待發(fā)數(shù)據(jù)到緩沖區(qū) ? strcpy(buf, Hello, World!)。 ? if (bytesSent == SOCKET_ERROR) ? { ? //錯誤處理 ... ? } ? closesocket(s)。 ? from是指向數(shù)據(jù)發(fā)送者地址的指針 ? sizeOfSockaddr is sizeof(struct sockaddr_in) ? 當(dāng)調(diào)用成功, recvfrom()返回被接收的字節(jié)數(shù);當(dāng)調(diào)用失敗,返回 SOCKET_ERROR。 ? sockaddr_in addr。 // 發(fā)送方地址結(jié)構(gòu) ? int addrFromLen = sizeof(addrFrom)。 ? = htons(2022)。addrFrom, amp。, 4)。 8/18/2022 69 實例 — 從 Web服務(wù)器下載文件 Method URL CR LF Sp CR LF 簡單 HTTP請求的格式
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1