遍匈 / socket園殻 /

匯倖酒汽議Windows和議socket殻會

<貧匯准 和匯准>
貧准處幣阻 Linux 和議 socket 殻會?宸准栖心匯和 Windows 和議 socket 殻會。揖劔?server.cpp 葎捲暦匂極旗鷹?client 葎人薩極旗鷹。

捲暦匂極旗鷹 server.cpp?
#include <stdio.h>
#include <winsock2.h>
#pragma comment (lib, "ws2_32.lib") //紗墮 ws2_32.dll
int main(){
 //兜兵晒 DLL
 WSADATA wsaData;
 WSAStartup( MAKEWORD(2, 2), &wsaData);
 //幹秀耗俊忖
 SOCKET servSock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
 //鰯協耗俊忖
 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 *str = "Hello World!";
 send(clntSock, str, strlen(str)+sizeof(char), NULL);
 //購液耗俊忖
 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
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 szBuffer[MAXBYTE] = {0};
 recv(sock, szBuffer, MAXBYTE, NULL);
 //補竃俊辺欺議方象
 printf("Message form server: %s\n", szBuffer);
 //購液耗俊忖
 closesocket(sock);
 //嶮峭聞喘 DLL
 WSACleanup();
 system("pause");
 return 0;
}

繍 server.cpp 才 client.cpp 蛍艶園咎葎 server.exe 才 client.exe?枠塰佩 server.exe?壅塰佩 client.exe?補竃潤惚葎?
Message form server: Hello World!

Windows 和議 socket 殻會才 Linux 房揃屢揖?徽聾准嗤侭餓艶?
1) Windows 和議 socket 殻會卆正 Winsock.dll 賜 ws2_32.dll?駅倬戻念紗墮。DLL 嗤曾嶽紗墮圭塀?萩臥心?強蓑全俊垂DLL議紗墮

2) Linux 聞喘“猟周宙峰憲”議古廷?遇 Windows 聞喘“猟周鞘凹”議古廷?Linux 音曝蛍 socket 猟周才噸宥猟周?遇 Windows 曝蛍?Linux 和 socket() 痕方議卦指峙葎 int 窃侏?遇 Windows 和葎 SOCKET 窃侏?匆祥頁鞘凹。

3) Linux 和聞喘 read() / write() 痕方響亟?遇 Windows 和聞喘 recv() / send() 痕方窟僕才俊辺。

4) 購液 socket 扮?Linux 聞喘 close() 痕方?遇 Windows 聞喘 closesocket() 痕方。
<貧匯准 和匯准>

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