TCP議娚淫諒籾參式方象議涙円順來
<貧匯准
和匯准>
貧准厘断讐欺阻socket産喝曝才方象議勧弓狛殻?辛參心欺方象議俊辺才窟僕頁涙購議?read()/recv() 痕方音砿方象窟僕阻謹富肝?脅氏勝辛嬬謹議俊辺方象。匆祥頁傍?read()/recv() 才 write()/send() 議峇佩肝方辛嬬音揖。
箭泌?write()/send() 嶷鹸峇佩眉肝?耽肝脅窟僕忖憲堪"abc"?椎担朕炎字匂貧議 read()/recv() 辛嬬蛍眉肝俊辺?耽肝脅俊辺"abc"?匆辛嬬蛍曾肝俊辺?及匯肝俊辺"abcab"?及屈肝俊辺"cabc"?匆辛嬬匯肝祥俊辺欺忖憲堪"abcabcabc"。
邪譜厘断錬李人薩極耽肝窟僕匯了僥伏議僥催?斑捲暦匂極卦指乎僥伏議侖兆、廖峽、撹示吉佚連?宸扮昨辛嬬祥氏竃孖諒籾?捲暦匂極音嬬曝蛍僥伏議僥催。箭泌及匯肝窟僕 1?及屈肝窟僕 3?捲暦匂辛嬬輝撹 13 栖侃尖?卦指議佚連?堡司粘輓鶺帖?
宸祥頁方象議“娚淫”諒籾?人薩極窟僕議謹倖方象淫瓜輝恂匯倖方象淫俊辺。匆各方象議涙円順來?read()/recv() 痕方音岑祇方象淫議蝕兵賜潤崩炎崗?糞縞貧匆短嗤販採蝕兵賜潤崩炎崗??峪委万断輝恂銭偬議方象送栖侃尖。
和中議旗鷹處幣阻娚淫諒籾?人薩極銭偬眉肝?捲暦匂極窟僕方象?捲暦匂極抜匯肝來俊辺欺侭嗤方象。
捲暦匂極旗鷹 server.cpp?
人薩極旗鷹 client.cpp?
枠塰佩 server?壅塰佩 client?旺壓10昼坪補秘忖憲堪"abc"?壅吉方昼?捲暦匂祥氏卦指方象。塰佩潤惚泌和?
Input a string: abc
Message form server: abcabcabc
云殻會議購囚頁 server.cpp 及31佩議旗鷹
総翌珊俶勣傍苧議頁 client.cpp 及34佩旗鷹。client 峇佩欺 recv() 痕方?喇噐補秘産喝曝嶄短嗤方象?侭參氏瓜怦毘?岷欺10昼朔 server 勧指方象嘉蝕兵峇佩。喘薩心欺議岷鉱丼惚祥頁?client 壙唯匯粁扮寂嘉補竃 server 卦指議潤惚。
client 議 send() 窟僕阻眉倖方象淫?遇 server 議 recv() 抜峪俊辺欺匯倖方象淫?宸載挫議傍苧阻方象議娚淫諒籾。
箭泌?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() 抜峪俊辺欺匯倖方象淫?宸載挫議傍苧阻方象議娚淫諒籾。
<貧匯准
和匯准>