#include<WinSock2.h> #include<stdio.h> #include<stdlib.h> #pragma comment(lib,"ws2_32.lib")
int main() { WORD wVersionRequested; WSADATA wsadata; int err; wVersionRequested = MAKEWORD(2, 2);
err = WSAStartup(wVersionRequested, &wsadata); if (err) { printf("WSAStartup errnum: %d\n", GetLastError()); return err; }
if (LOBYTE(wsadata.wVersion) != 2 || HIBYTE(wsadata.wVersion) != 2) { printf("LOBYTE errnum: %d\n", GetLastError()); WSACleanup(); return -1; }
SOCKET sockCli; sockCli = socket(AF_INET, SOCK_STREAM, 0); SOCKADDR_IN addrSrv; addrSrv.sin_addr.S_un.S_addr = inet_addr("10.7.152.211"); addrSrv.sin_family = AF_INET; addrSrv.sin_port = htons(9999);
if (SOCKET_ERROR == connect(sockCli, (sockaddr*)&addrSrv, sizeof(sockaddr))) { printf("%d", GetLastError()); return -1; }
char recvBuf[100] = { 0 }; char sendBuf[100] = "hello"; while (1) { memset(recvBuf, 0, 100); int iLen = recv(sockCli, recvBuf, 100, 0); if (iLen == SOCKET_ERROR) { printf("%d", GetLastError()); return -1; } printf("recvBuf : %s\n", recvBuf); memset(sendBuf, 0, 100); printf("send: "); scanf("%s", sendBuf); iLen = send(sockCli, sendBuf, 100, 0); if (iLen == SOCKET_ERROR) { printf("%d", GetLastError()); return -1; } } closesocket(sockCli); return 0; }
#include<WinSock2.h> #include<stdio.h> #include<stdlib.h>
#pragma comment(lib,"ws2_32.lib") int main() { WORD wVersionRequested; WSADATA wsadata; int err; wVersionRequested = MAKEWORD(2, 2);
err = WSAStartup(wVersionRequested, &wsadata); if (err) { printf("WSAStartup errnum: %d\n", GetLastError()); return err; }
if (LOBYTE(wsadata.wVersion) != 2 || HIBYTE(wsadata.wVersion) != 2) { printf("LOBYTE errnum: %d\n", GetLastError()); WSACleanup(); return -1; }
SOCKET sockSrv = socket(AF_INET, SOCK_STREAM, 0); if (INVALID_SOCKET == sockSrv) { printf("%d", GetLastError()); return -1; } SOCKADDR_IN addrSrv; addrSrv.sin_addr.S_un.S_addr = htonl(INADDR_ANY); addrSrv.sin_family = AF_INET; addrSrv.sin_port = htons(9999);
if (SOCKET_ERROR == bind(sockSrv, (SOCKADDR*)&addrSrv, sizeof(SOCKADDR))) { printf("%d", GetLastError()); return -1; } if (SOCKET_ERROR == listen(sockSrv, 1)) { printf("%d", GetLastError()); return -1; }
SOCKADDR_IN addrCli; int len = sizeof(SOCKADDR);
char sendBuf[100] = { 0 }; char recvBuf[100] = { 0 }; while (1) { SOCKET sockConn = accept(sockSrv, (SOCKADDR*)&addrCli, &len); if (sockConn == SOCKET_ERROR) { printf("%d", GetLastError()); return -1; } sprintf_s(sendBuf, 100, "Welcome %s to China!\n", inet_ntoa(addrCli.sin_addr)); printf("%s\n", sendBuf); while (1) { int iLen = send(sockConn, sendBuf, strlen(sendBuf), 0); if (iLen == SOCKET_ERROR) { printf("%d", GetLastError()); return -1; } memset(sendBuf, 0, 100); memset(recvBuf, 0, 100); iLen = recv(sockConn, recvBuf, 100, 0); if (iLen == SOCKET_ERROR) { printf("%d", GetLastError()); return -1; } printf("RecvBuf : %s\nsend: ", recvBuf); scanf("%s", sendBuf); } closesocket(sockConn); }
closesocket(sockSrv); }
|