指蕗人薩極議糞孖
<貧匯准
和匯准>
侭僚“指蕗”?頁峺人薩極?捲暦匂窟僕匯訳方象?捲暦匂壅繍方象圻劔卦指公人薩極?祥崧蕗咄匯劔?囑欺嬾悪麗氏瓜“郡起指栖”。
斤?人薩極匆辛參聞喘 write() / send() 痕方?捲暦匂窟僕方象?捲暦匂匆辛參聞喘 read() / recv() 痕方俊辺方象。
深打欺寄何蛍兜僥宀聞喘 Windows 荷恬狼由?云准繍糞孖 Windows 和議指蕗殻會?Linux 和不恬俐個軸辛?音壅公竃旗鷹。
捲暦匂極 server.cpp?
人薩極 client.cpp?
Input a string: c-language java cpp?L
Message form server: c-language
scanf() 響函欺腎鯉扮範葎匯倖忖憲堪補秘潤崩?侭參峪嬬響函欺“c-language”?泌惚音錬李委腎鯉恬葎忖憲堪議潤崩憲?辛參聞喘 gets() 痕方。
宥狛云殻會辛參窟孖?人薩極匆辛參?捲暦匂極窟僕方象?宸劔捲暦匂極祥辛參功象音揖議萩箔恬竃音揖議峒哘?http 捲暦匂祥頁灸侏議箭徨?萩箔議利峽音揖?卦指議匈中匆音揖。
斤?人薩極匆辛參聞喘 write() / send() 痕方?捲暦匂窟僕方象?捲暦匂匆辛參聞喘 read() / recv() 痕方俊辺方象。
深打欺寄何蛍兜僥宀聞喘 Windows 荷恬狼由?云准繍糞孖 Windows 和議指蕗殻會?Linux 和不恬俐個軸辛?音壅公竃旗鷹。
捲暦匂極 server.cpp?
#include <stdio.h>
#include <winsock2.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);
SOCKET clntSock = accept(servSock, (SOCKADDR*)&clntAddr, &nSize);
char buffer[BUF_SIZE]; //産喝曝
int strLen = recv(clntSock, buffer, BUF_SIZE, 0); //俊辺人薩極窟栖議方象
send(clntSock, buffer, strLen, 0); //繍方象圻劔卦指
//購液耗俊忖
closesocket(clntSock);
closesocket(servSock);
//嶮峭 DLL 議聞喘
WSACleanup();
return 0;
}
人薩極 client.cpp?
#include <stdio.h>
#include <stdlib.h>
#include <WinSock2.h>
#pragma comment(lib, "ws2_32.lib") //紗墮 ws2_32.dll
#define BUF_SIZE 100
int main(){
//兜兵晒DLL
WSADATA wsaData;
WSAStartup(MAKEWORD(2, 2), &wsaData);
//幹秀耗俊忖
SOCKET sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
//?捲暦匂窟軟萩箔
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);
connect(sock, (SOCKADDR*)&sockAddr, sizeof(SOCKADDR));
//資函喘薩補秘議忖憲堪旺窟僕公捲暦匂
char bufSend[BUF_SIZE] = {0};
printf("Input a string: ");
scanf("%s", bufSend);
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);
//嶮峭聞喘 DLL
WSACleanup();
system("pause");
return 0;
}
枠塰佩捲暦匂極?壅塰佩人薩極?峇佩潤惚葎?Input a string: c-language java cpp?L
Message form server: c-language
scanf() 響函欺腎鯉扮範葎匯倖忖憲堪補秘潤崩?侭參峪嬬響函欺“c-language”?泌惚音錬李委腎鯉恬葎忖憲堪議潤崩憲?辛參聞喘 gets() 痕方。
宥狛云殻會辛參窟孖?人薩極匆辛參?捲暦匂極窟僕方象?宸劔捲暦匂極祥辛參功象音揖議萩箔恬竃音揖議峒哘?http 捲暦匂祥頁灸侏議箭徨?萩箔議利峽音揖?卦指議匈中匆音揖。
<貧匯准
和匯准>