您的位置:首页 > 编程语言 > C语言/C++

C++:今天写的一点小程序

2013-04-18 21:55 225 查看
程序写于20130418 20岁生日

服务器端:

// server.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>
#include <winsock2.h>
#include <string>
#include <stdio.h>
#include <windows.h>
#pragma comment(lib,"ws2_32.lib")
using namespace std;

int main()
{

	string command;
	WSADATA data;
	WSAStartup(MAKEWORD(2,2),&data);

	SOCKET s = socket(AF_INET,SOCK_STREAM,0);
	SOCKADDR_IN server;
	server.sin_family = AF_INET;
	server.sin_addr.S_un.S_addr = htonl(0);
	server.sin_port = htons((short)4444);

	bind(s,(SOCKADDR*)&server,sizeof(SOCKADDR));
	listen(s,5);

	
	SOCKADDR_IN conclient;
	int length = sizeof(conclient);
	char recvbuf[50]={'a'};							//我怕没收到数据,就初始化一个数据进行判断,看看效果如何
	while(1)
	{
		SOCKET sc=accept(s,(SOCKADDR*)&sc,&length);
		recv(sc,recvbuf,50,0);
		command = (string)recvbuf;
		cout << "---------------------------------------------" << endl;
		system(command.c_str());
		cout << "---------------------------------------------" << endl;
		cout << "                       pragma by shaoyongyang     " << endl;
	}
	return 0;
}


客户端:

// client.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <iostream>
#include <winsock2.h>
#include <stdlib.h>
#include <string>
#pragma comment(lib,"ws2_32.lib")

using namespace std;

int main()
{
	//用于强制类型转换发送所需要的参数  参数必须为char 类型;
	
	WSADATA data;
	WSAStartup(MAKEWORD(2,2),&data);

	SOCKET cs = socket(AF_INET,SOCK_STREAM,0);

	SOCKADDR_IN client;
	client.sin_family = AF_INET;
	client.sin_addr.S_un.S_addr = inet_addr("10.1.12.5");
	client.sin_port = htons(4444);

	while(1)
	{
		string command="net";
		cout << "---------------Please Input Command------------------" << endl;
		cout << ">>";
		getline(cin,command);
		char* str =const_cast<char*>(command.c_str());
		connect(cs,(SOCKADDR*)&client,sizeof(SOCKADDR));
		send(cs,str ,strlen(str),0);
	}

	return 0;
}
//客户端之所以写成无限循环,是为了不停地给服务器端发送命令。


功能:服务端启用程序,即进入监听状态,采用端口4444。当客户端进入连接,便提示发送DOS命令。

总结:程序效果不是太好,输入一次DOS命令执行过后,后面的命令有几率的执行。这点很纠结。待完善。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: