每天学习 = =……
【TCP】服务端
- //////////////////////////////////////////////////////////////////////////
- // CopyRight(c) 2009, YOYO, All Rights Reserved.
- // Author: LIN YiQian
- // Created: 2009/09/17
- // Describe: TCP 服务端
- //////////////////////////////////////////////////////////////////////////
- #include <WinSock2.h>
- #include <iostream>
- #pragma comment(lib, "ws2_32.lib")
- void main(void)
- {
- WORD wVersionRequired;
- WSADATA wsaData;
- wVersionRequired = MAKEWORD(1, 1); // 副版本号在前 主版本号在后
- int nErr = WSAStartup(wVersionRequired, &wsaData);
- if (nErr != 0)
- {
- return;
- }
- if (LOBYTE(wsaData.wVersion) != 1 || HIBYTE(wsaData.wVersion) != 1) // 版本错误
- {
- WSACleanup();
- return;
- }
- SOCKET socketServer = socket(AF_INET, SOCK_STREAM, 0);
- SOCKADDR_IN addrServer;
- addrServer.sin_addr.S_un.S_addr = htonl(INADDR_ANY); // 使用任意网卡上的IP地址
- addrServer.sin_port = htons(9989); // 使用端口号
- addrServer.sin_family = AF_INET;
- bind(socketServer, (SOCKADDR*)&addrServer, sizeof(SOCKADDR));
- listen(socketServer, 5);
- SOCKET socketClient;
- SOCKADDR_IN addrClient;
- int nLen = sizeof(SOCKADDR);
- while (true)
- {
- socketClient = accept(socketServer, (SOCKADDR*)&addrClient, &nLen);
- char szSendMsg[100];
- sprintf(szSendMsg, "Welcome %s to ND./n", inet_ntoa(addrClient.sin_addr));
- send(socketClient, szSendMsg, strlen(szSendMsg) + 1, 0);
- char szRecvMsg[100];
- recv(socketClient, szRecvMsg, 100, 0);
- std::cout << szRecvMsg << std::endl;
- closesocket(socketClient);
- }
- closesocket(socketServer);
- WSACleanup();
- return;
- }
【TCP】客户端
- //////////////////////////////////////////////////////////////////////////
- // CopyRight(c) 2009, YOYO, All Rights Reserved.
- // Author: LIN YiQian
- // Created: 2009/09/17
- // Describe: TCP 客户端
- //////////////////////////////////////////////////////////////////////////
- #include <Winsock2.h>
- #include <iostream>
- #pragma comment(lib, "ws2_32.lib")
- void main(void)
- {
- WORD wVersionRequired;
- WSADATA wsaData;
- wVersionRequired = MAKEWORD(1, 1);
- int nErr = WSAStartup(wVersionRequired, &wsaData);
- if (nErr != 0)
- {
- return;
- }
- if (LOBYTE(wsaData.wVersion) != 1 || HIBYTE(wsaData.wVersion) != 1)
- {
- WSACleanup();
- return;
- }
- SOCKET socketClient = socket(AF_INET, SOCK_STREAM, 0);
- SOCKADDR_IN addrServer;
- addrServer.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
- addrServer.sin_port = htons(9989);
- addrServer.sin_family = AF_INET;
- connect(socketClient, (SOCKADDR*)&addrServer, sizeof(SOCKADDR));
- char szRecvMsg[100];
- recv(socketClient, szRecvMsg, 100, 0);
- std::cout << szRecvMsg << std::endl;
- char szSendMsg[100];
- sprintf(szSendMsg, "Re from Client../n");
- send(socketClient, szSendMsg, strlen(szSendMsg) + 1, 0);
- closesocket(socketClient);
- WSACleanup();
- system("pause");
- return;
- }