遍匈 / socket園殻 /

TCP議娚淫諒籾參式方象議涙円順來

<貧匯准 和匯准>
貧准厘断讐欺阻socket産喝曝才方象議勧弓狛殻?辛參心欺方象議俊辺才窟僕頁涙購議?read()/recv() 痕方音砿方象窟僕阻謹富肝?脅氏勝辛嬬謹議俊辺方象。匆祥頁傍?read()/recv() 才 write()/send() 議峇佩肝方辛嬬音揖。

箭泌?write()/send() 嶷鹸峇佩眉肝?耽肝脅窟僕忖憲堪"abc"?椎担朕炎字匂貧議 read()/recv() 辛嬬蛍眉肝俊辺?耽肝脅俊辺"abc"?匆辛嬬蛍曾肝俊辺?及匯肝俊辺"abcab"?及屈肝俊辺"cabc"?匆辛嬬匯肝祥俊辺欺忖憲堪"abcabcabc"。

邪譜厘断錬李人薩極耽肝窟僕匯了僥伏議僥催?斑捲暦匂極卦指乎僥伏議侖兆、廖峽、撹示吉佚連?宸扮昨辛嬬祥氏竃孖諒籾?捲暦匂極音嬬曝蛍僥伏議僥催。箭泌及匯肝窟僕 1?及屈肝窟僕 3?捲暦匂辛嬬輝撹 13 栖侃尖?卦指議佚連?堡司粘輓鶺帖?

宸祥頁方象議“娚淫”諒籾?人薩極窟僕議謹倖方象淫瓜輝恂匯倖方象淫俊辺。匆各方象議涙円順來?read()/recv() 痕方音岑祇方象淫議蝕兵賜潤崩炎崗?糞縞貧匆短嗤販採蝕兵賜潤崩炎崗??峪委万断輝恂銭偬議方象送栖侃尖。

和中議旗鷹處幣阻娚淫諒籾?人薩極銭偬眉肝?捲暦匂極窟僕方象?捲暦匂極抜匯肝來俊辺欺侭嗤方象。

捲暦匂極旗鷹 server.cpp?
#include <stdio.h>
#include <windows.h>
#pragma comment (lib, "ws2_32.lib") //紗墮 ws2_32.dll
#define BUF_SIZE 100
int main(){
 WSADATA wsaData;
 WSAStartup( MAKEWORD(2, 2), &wsaData);
 //幹秀耗俊忖
 SOCKET servSock = socket(AF_INET, SOCK_STREAM, 0);
 //鰯協耗俊忖
 sockaddr_in sockAddr;
 memset(&sockAddr, 0, sizeof(sockAddr)); //耽倖忖准脅喘0野割
 sockAddr.sin_family = PF_INET; //聞喘IPv4仇峽
 sockAddr.sin_addr.s_addr = inet_addr("127.0.0.1"); //醤悶議IP仇峽
 sockAddr.sin_port = htons(1234); //極笥
 bind(servSock, (SOCKADDR*)&sockAddr, sizeof(SOCKADDR));
 //序秘酌油彜蓑
 listen(servSock, 20);
 //俊辺人薩極萩箔
 SOCKADDR clntAddr;
 int nSize = sizeof(SOCKADDR);
 char buffer[BUF_SIZE] = {0}; //産喝曝
 SOCKET clntSock = accept(servSock, (SOCKADDR*)&clntAddr, &nSize);
 Sleep(10000); //廣吭宸戦?斑殻會壙唯10昼
 //俊辺人薩極窟栖議方象?旺圻劔卦指
 int recvLen = recv(clntSock, buffer, BUF_SIZE, 0);
 send(clntSock, buffer, recvLen, 0);
 //購液耗俊忖旺嶮峭DLL議聞喘
 closesocket(clntSock);
 closesocket(servSock);
 WSACleanup();
 return 0;
}

人薩極旗鷹 client.cpp?
#include <stdio.h>
#include <stdlib.h>
#include <WinSock2.h>
#include <windows.h>
#pragma comment(lib, "ws2_32.lib") //紗墮 ws2_32.dll
#define BUF_SIZE 100
int main(){
 //兜兵晒DLL
 WSADATA wsaData;
 WSAStartup(MAKEWORD(2, 2), &wsaData);
 //?捲暦匂窟軟萩箔
 sockaddr_in sockAddr;
 memset(&sockAddr, 0, sizeof(sockAddr)); //耽倖忖准脅喘0野割
 sockAddr.sin_family = PF_INET;
 sockAddr.sin_addr.s_addr = inet_addr("127.0.0.1");
 sockAddr.sin_port = htons(1234);
 //幹秀耗俊忖
 SOCKET sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
 connect(sock, (SOCKADDR*)&sockAddr, sizeof(SOCKADDR));
 //資函喘薩補秘議忖憲堪旺窟僕公捲暦匂
 char bufSend[BUF_SIZE] = {0};
 printf("Input a string: ");
 gets(bufSend);
 for(int i=0; i<3; i++){
 send(sock, bufSend, strlen(bufSend), 0);
 }
 //俊辺捲暦匂勧指議方象
 char bufRecv[BUF_SIZE] = {0};
 recv(sock, bufRecv, BUF_SIZE, 0);
 //補竃俊辺欺議方象
 printf("Message form server: %s\n", bufRecv);
 closesocket(sock); //購液耗俊忖
 WSACleanup(); //嶮峭聞喘 DLL
 system("pause");
 return 0;
}

枠塰佩 server?壅塰佩 client?旺壓10昼坪補秘忖憲堪"abc"?壅吉方昼?捲暦匂祥氏卦指方象。塰佩潤惚泌和?
Input a string: abc
Message form server: abcabcabc

云殻會議購囚頁 server.cpp 及31佩議旗鷹Sleep(10000);?万斑殻會壙唯峇佩10昼。壓宸粁扮寂坪?client 銭偬眉肝窟僕忖憲堪"abc"?喇噐 server 瓜怦毘?方象峪嬬均持壓産喝曝嶄?10昼朔?server 蝕兵塰佩?貫産喝曝嶄匯肝來響竃侭嗤持儿議方象?旺卦指公人薩極。

総翌珊俶勣傍苧議頁 client.cpp 及34佩旗鷹。client 峇佩欺 recv() 痕方?喇噐補秘産喝曝嶄短嗤方象?侭參氏瓜怦毘?岷欺10昼朔 server 勧指方象嘉蝕兵峇佩。喘薩心欺議岷鉱丼惚祥頁?client 壙唯匯粁扮寂嘉補竃 server 卦指議潤惚。

client 議 send() 窟僕阻眉倖方象淫?遇 server 議 recv() 抜峪俊辺欺匯倖方象淫?宸載挫議傍苧阻方象議娚淫諒籾。
<貧匯准 和匯准>

AltStyle によって変換されたページ (->オリジナル) /