[Socket网络编程] Socket网络编程之echo服务器
Socket网络编程之echo服务器
这是Windows下的Socket编程例程:
CMakeLists.txt
#CMakeLists.txt
cmake_minimum_required(VERSION 3.0)
project(select)
link_libraries(ws2_32)
FILE(GLOB SC *.cpp *.h)
add_executable(${PROJECT_NAME} ${SC})
main.cpp
/*main.cpp*/
#include <Windows.h>
#include <iostream>
using namespace std;
#define BUFSIZE 4096
int main(int argc, char** argv)
{
WSAData wsa;
WSAStartup(0x020, &wsa);
SOCKET sock = socket(AF_INET, SOCK_STREAM, 0);
struct sockaddr_in _server;
_server.sin_family = AF_INET;
_server.sin_addr.s_addr = inet_addr("127.0.0.1");
_server.sin_port = htons(3000);
int ret = bind(sock, (sockaddr*)&_server, sizeof(_server));
ret = listen(sock, 200);
struct sockaddr_in addrClt;
int addrCltSize = sizeof(addrClt);
static char buffer[BUFSIZE] = { 0 };
static int _rlen = 0;
while (true)
{
SOCKET _client = accept(sock, (sockaddr*)&addrClt, &addrCltSize);
cout << "client have been accepted" << endl;
_rlen = recv(_client, buffer, BUFSIZE, 0);
cout << "recv(" << _rlen << "): " << buffer << endl;
if (_rlen > 0)
{
send(_client, buffer, _rlen, 0);
memset(buffer, 0x00, _rlen);
}
closesocket(_client);
}
WSACleanup();
return 0;
}

浙公网安备 33010602011771号