📄 server.cpp
字号:
#include <stdio.h>
#include <stdlib.h>
#include <WINSOCK2.H>
#pragma comment (lib, "WS2_32")
void showcontent(char *buff);
int main(int argc, char **argv)
{
WSADATA wsaData;
if( WSAStartup(0x101, &wsaData) != 0 )
{
printf("Failed Initialization.\n");
return 0;
}
if(argc!=2)
{
printf("Usage: server.exe [port]\n");
return 0;
}
int port = atoi(argv[1]);
SOCKET sListen = ::socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (sListen == INVALID_SOCKET)
{
printf("Failed socket()\n");
return 0;
}
sockaddr_in sin;
sin.sin_family = AF_INET;
sin.sin_port = htons(port);
sin.sin_addr.S_un.S_addr = INADDR_ANY;
if (::bind(sListen, (LPSOCKADDR)&sin, sizeof(sin)) == SOCKET_ERROR)
{
printf("Failed bind()\n");
return 0;
}
if (::listen(sListen, 2) == SOCKET_ERROR)
{
printf("Failed listen()\n");
return 0;
}
sockaddr_in remoteAddr;
int nAddrLen = sizeof(remoteAddr);
SOCKET sClient;
char szText[] = "TCP Server is Connected!\n\n";
char buff[1024] = {0};
char toSend[1024] = {0};
while (TRUE)
{
sClient = ::accept(sListen, (SOCKADDR*)&remoteAddr, &nAddrLen);
if (sClient == INVALID_SOCKET)
{
printf("Failed accept()\n");
continue;
}
printf("Somebody is connecting: %s\n", inet_ntoa(remoteAddr.sin_addr));
::send(sClient, szText, strlen(szText), 0);
int nRecv = ::recv(sClient, buff, sizeof(buff), 0);
if (nRecv > 0)
{
buff[nRecv] = '\0';
::closesocket(sClient);
break;
}
}
::closesocket(sListen);
showcontent(buff);
return 0;
}
void showcontent(char *buff)
{
char content[8];
strcpy(content, buff);
printf("%s", content);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -