// 定义ServerCode.cpp: 程序入口
// #include <stdio.h>
#include <stdlib.h>
#include <string.h>#ifdef WIN32
#include <WinSock2.h>
#include <Windows.h>
#pragma comment (lib, "WSOCK32.LIB")
#endif // WIN32int main(int argc, char* argv[]) {
#ifdef WIN32WORD wVersionRequested;WSADATA wsaData;wVersionRequested = MAKEWORD(2, 2);int ret = WSAStartup(wVersionRequested, &wsaData);if (ret != 0) {printf("WSASTART UP FAILED!\a\n");return -1;}
#endif // 防止socket版本过高// 创建服务器socket监听int s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);if (s == INVALID_SOCKET) {goto failed;}// 配置服务器ip和端口struct sockaddr_in socket;socket.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");socket.sin_family = AF_INET;socket.sin_port = htons(6080);ret = bind(s, (const struct sockaddr*)&socket, sizeof(socket));if (ret != 0) {goto failed;}ret = listen(s, 1); //开启监听while (1) {// 客户端struct sockaddr_in c_sockaddr;int c_sockaddr_len = sizeof(c_sockaddr);printf("Waiting for client....\n");int cs = accept(s, (sockaddr*)&c_sockaddr, &c_sockaddr_len);printf("client ip: %s, client port: %d\n", inet_ntoa(c_sockaddr.sin_addr), ntohs(c_sockaddr.sin_port));char buf[11];memset(buf, 0, 11);recv(cs, buf, 11, 0);printf("%s\n", buf);send(cs, buf, 11, 0);closesocket(cs);}failed:if (s != INVALID_SOCKET) {closesocket(s);}#ifdef WIN32WSACleanup();
#endif // 清除WSADatareturn 0;
}
// 定义ClientCode.cpp: 程序入口
// #include <stdio.h>
#include <stdlib.h>
#include <string.h>#ifdef WIN32
#include <WinSock2.h>
#include <Windows.h>
#pragma comment (lib, "WSOCK32.LIB")
#endif // WIN32int main(int argc, char* argv[]) {
#ifdef WIN32WORD wVersionRequested;WSADATA wsaData;wVersionRequested = MAKEWORD(2, 2);int ret = WSAStartup(wVersionRequested, &wsaData);if (ret != 0) {printf("WSASTART UP FAILED!\a\n");return -1;}
#endif // 配置socket版本int s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);if (s == INVALID_SOCKET) {goto failed;}struct sockaddr_in socket;socket.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");socket.sin_family = AF_INET;socket.sin_port = htons(6080);ret = connect(s, (const sockaddr*)&socket, sizeof(socket));if (ret != 0) {goto failed;}char buf[11];memset(buf, 0, 11);send(s, "金币+1", 11, 0);printf("%s\n", buf);recv(s, buf, 11, 0);printf("从服务器接收到信息: %s\n", buf);failed:if (s != INVALID_SOCKET) {closesocket(s);s = INVALID_SOCKET;}closesocket(s);#ifdef WIN32WSACleanup();
#endif // 清理WSADATAsystem("pause");return 0;
}