📄 server.c
字号:
#include <stdio.h>
#include <conio.h>
#include <winsock2.h>
#pragma comment(lib, "ws2_32.lib")
void main(int argc, char *argv[])
{
unsigned int sock,sock1,addr,rc,len=16;
struct sockaddr_in mytcp;
struct hostent * hp;
WSADATA wsaData;
if(argc<2 || argc>2)
{
printf("\nUsage: server <server-port>\n");
printf("Sample: server 1986\n\n");
exit(-1);
}
printf("[*] begin open server port\n");
if (WSAStartup(MAKEWORD(2,1),&wsaData) != 0)
{
printf("[+] WSAStartup set failed!");
exit(-1);
}
printf("[*] WSAStartup successful \n");
mytcp.sin_port=htons((unsigned short)atoi(argv[1]));
mytcp.sin_addr.s_addr = 0;
mytcp.sin_family = AF_INET;
sock=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
rc=bind(sock,(struct sockaddr *)&mytcp,16);
if(rc!=0)
{
printf("[+] bind error() %d\n",WSAGetLastError());
exit(-1);
}
printf("[*] server bind successful \n");
rc=listen(sock,5);
if(rc!=0)
{
printf("[+] listen error()\n");
exit(-1);
}
printf("[*] open port:%s successful\n",argv[1]);
printf("[*] listening... ...\n");
sock1=accept(sock, (struct sockaddr*)&mytcp,&len);
if(sock1)
{
printf("[*] execute command successful !\n");
clrscr(); printf("[*] recv message:\n");shell(sock1);
}
}
int shell(int sock)
{
int l;
char buf[1024];
struct timeval time;
unsigned long ul[2];
time.tv_sec = 1;
time.tv_usec = 0;
while (1)
{
ul[0] = 1;
ul[1] = sock;
l = select (0, (fd_set *)&ul, NULL, NULL, &time);
if(l == 1)
{
l = recv (sock, buf, sizeof (buf), 0);
if (l <= 0)
{
printf ("%s",buf);
return;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -