计算器操作远程监控程序

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

// ser.cpp : Defines the entry point for the console application.

//

#include "stdafx.h"

#include <Winsock2.h>

#include <stdio.h>

#include <stdlib.h>

#define PORT 5050

#define SER_DATA_BUFFER 4096

DWORD WINAPI ClientThread(LPVOID lpParam);

void main()

{

HANDLE hThread;

DWORD dwThreadId;

SOCKET sClient;

int iPort=PORT;

WSADATA wsaData;

SOCKET sListen;

int iCliLen;

char SerRecvBuf[SER_DATA_BUFFER]="";

struct sockaddr_in ser,cli;

printf("************************\n");

printf("计算器操作远程监控程序:\n");

if (WSAStartup(MAKEWORD(2,2),&wsaData)!=0)

{

printf("Failed to load Winsock.\n");

return;

}

sListen=socket(AF_INET,SOCK_STREAM,0);

if (sListen==INVALID_SOCKET)

{

printf("socket() Failed:%d\n",WSAGetLastError());

return;

}

ser.sin_family=AF_INET;

ser.sin_port=htons(iPort);

ser.sin_addr.s_addr=htonl(INADDR_ANY);

if (bind(sListen,(LPSOCKADDR)&ser,sizeof(ser))==SOCKET_ERROR)

{

printf("bind() Failed:%d\n",WSAGetLastError());

return;

}

listen(sListen,8);

printf("************************\n");

printf("等待连接:\n");

printf("************************\n");

while(1)

{

iCliLen=sizeof(cli);

sClient=accept(sListen,(struct sockaddr*)&cli,&iCliLen);

if(sClient==INVALID_SOCKET)

{

printf("accept() Failed:%d\n",WSAGetLastError());

break;

}

printf("************************\n");

printf("连接成功:\n");

printf("************************\n");

printf("客户端IP:[%s]\n客户端端口:[%d]\n",inet_ntoa(cli.sin_addr),ntohs(cli.sin_port));

printf("************************\n");

hThread=CreateThread(NULL,0,ClientThread,(LPVOID)sClient,0,&dwThreadId);

if (hThread==NULL)

break;

CloseHandle(hThread);

}

closesocket(sListen);

WSACleanup();

}

DWORD WINAPI ClientThread(LPVOID lpParam)

{

SOCKET ThreadSock=(SOCKET)lpParam;

char szBuff[200];

int recvlen;

while(1)

{

recvlen=recv(ThreadSock,szBuff,200,0);

if (recvlen==0)

break;

else if(recvlen==SOCKET_ERROR)

{

printf("************************\n");

printf("连接断开:%d\n",WSAGetLastError());

printf("************************\n");

printf("等待连接:\n");

printf("************************\n");

break;

}

szBuff[recvlen]='\0';

printf("%s",szBuff);

printf(" ");

}

return 0;

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航