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

正文內(nèi)容

網(wǎng)絡(luò)編程(編輯修改稿)

2024-08-28 13:50 本頁面
 

【文章內(nèi)容簡介】 t Calls (listen) // Berkeley form int listen(int sockfd, int backlog)。 // WinSock form int listen (SOCKET sockfd, int backlog)。 8/18/2022 31 listen (續(xù) ) int listen (SOCKET sockfd, int backlog)。 ? sockfd監(jiān)聽連接的 Socket ? 1=backlog=5 ? 指定了正在等待連接的最大隊(duì)列長度,它的作用在于處理可能同時(shí)出現(xiàn)的幾個(gè)連接請求。例如,假定backlog參數(shù)為 2,如果三個(gè)客戶機(jī)同時(shí)發(fā)出請求,那么頭兩個(gè)會(huì)被放在等待處理的隊(duì)列中,以便服務(wù)器程序依次為它們提供服務(wù),而第三個(gè)連接的客戶則會(huì)收到 WSAECONNREFUSED錯(cuò)誤。 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 一個(gè)新的已 連 接的 Socket (INVALID_SOCKET if error) 接受客 戶連 接的 Socket sizeof (client_addr)。 接收外來 連 接的地址信息,如果不關(guān)心,可置 為 NULL accept ( ) 函數(shù) 8/18/2022 33 Basic Socket Calls (accept) // Berkeley form int accept(int s struct sockaddr* addr, int* pointerToAddrLen)。 // WinSock form SOCKET accept (SOCKET s, struct sockaddr* addr, int* pointerToAddrLen)。 8/18/2022 34 accept (續(xù) ) SOCKET accept (SOCKET s, struct sockaddr* addr, int* pointerToAddrLen)。 ? s是接受客戶連接的 Socket ? addr用于接收外來連接的地址信息,如果暫時(shí)不關(guān)心該地址信息,則可以置為 NULL ? pointerToAddrLen是 addr結(jié)構(gòu)的長度 ? 返回一個(gè)新的已連接的 Socket, 使用這個(gè)Socket可以和客戶進(jìn)行通信,而原來的監(jiān)聽Socket仍然可以接受其他客戶的連接 . 8/18/2022 35 Accept()調(diào)用實(shí)例 ? SOCKET s。 // 監(jiān)聽 Socket ? SOCKET clientSocket。 // 客戶 Socket ? sockaddr_in addr。 // 服務(wù)器的綁定地址 ? sockaddr_in clientAddr。 // 連接的客戶地址 ? IN_ADDR clientIn。 // 客戶 IP地址 ? int nClientAddrLen。 // 客戶地址結(jié)構(gòu)長度 ? // 創(chuàng)建流 Socket ? s = socket(AF_INET, SOCK_STREAM, 0)。 ? if (s != INVALID_SOCKET) ? { ? // 填充地址信息 ? = AF_INET。 ? = htons(2022)。 ? = htonl(INADDR_ANY)。 ? // 綁定 Socket ? if (bind(s, (sockaddr*)amp。addr, sizeof(addr)) != SOCKET_ERROR) ? { ? // 監(jiān)聽連接 ? if (listen(s, 3) != SOCKET_ERROR) 8/18/2022 36 Accept()調(diào)用實(shí)例 ? { ? // 設(shè)置客戶地址結(jié)構(gòu)長度 ? nClientAddrLen = sizeof(clientAddr)。 ? // 接受連接 ? clientSocket = accept(s, (sockaddr*)amp。clientAddr, amp。nClientAddrLen)。 ? if (clientSocket == INVALID_SOCKET) ? { ? printf(accept() 調(diào)用錯(cuò)誤: %d, WSAGetLastError())。 ? } ? else ? { ? memcpy(amp。clientIn, amp。, 4)。 ? printf(accept() 調(diào)用成功 : 客戶 IP地址是 %s, 端口是 %d, ? i_ntoa(clientIn), ntohs())。 ? //... ? } ? } ? } ? } 8/18/2022 37 int status = connect (socket_id, (struct sockaddr_in *) addr, sizeof(addr))。 sockaddr_in 結(jié) 構(gòu), 描述服 務(wù) 器的端口和 IP 地址 Sockaddr_in 結(jié) 構(gòu)的字 節(jié)長 度 Return code (SOCKET_ERROR if error) Socket ID returned by socket function connect( ) 函數(shù) 8/18/2022 38 Basic Socket Calls (connect) // Berkeley form int connect(int s struct sockaddr* addr, int sizeOfAddr)。 // WinSock form int connect (SOCKET s, struct sockaddr* addr, int sizeOfAddr)。 8/18/2022 39 connect (續(xù) ) int connect (SOCKET sockfd, struct sockaddr* addr, int addrLen)。 ? sockfd 由 socket() 調(diào)用返回 ? addr 是指向 sockaddr_in 結(jié)構(gòu)的指針,包含server IP 地址和端口號(hào) ? addrLen sizeof (struct sockaddr_in) 8/18/2022 40 客戶同服務(wù)器建立連接示例 ? SOCKET s。 ? sockaddr_in serverAddr。 ? s = socket(AF_INET, SOCK_STREAM, 0)。 ? = AF_INET。 ? = htons(2022)。 ? = i_addr()。 ? if(connect(s, (sockaddr*)amp。serverAddr, sizeof(serverAddr))== SOCKET_ERROR) ? { ? printf(connect () 失敗,錯(cuò)誤碼 : %d, WSAGetLastError())。 ? } ? else ? { ? //... ? } 8/18/2022 41 int status = recv (socket_id, in_buffer, MAX_BUFFER_SIZE, 0)。 Return code (SOCKET_ERROR if error) Always 0 The maximum buffer size 接收數(shù)據(jù)的 緩 沖區(qū)的指 針 Example: char in_buffer [MAX_BUFFER] Socket ID returned by socket function On success, the number of bytes received recv ( ) 函數(shù) 8/18/2022 42 Basic Socket Calls (recv) // Berkeley form int recv(int s char* bytesToReceive, int nBytes, int flags)。 // WinSock form int recv(SOCKET s, char* bytesToReceive, int nBytes, int flags)。 8/18/2022 43 recv (續(xù) ) int recv (SOCKET s,
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1