#include
#include
#include
#define NETWORK_ERROR -1
#define NETWORK_OK 0
void ReportError(int, const char *);
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpCmd, int nShow)
{
WORD sockVersion;
WSADATA wsaData;
int nret;
sockVersion = MAKEWORD(1, 1); // We'd like Winsock version 1.1
// We begin by initializing Winsock
WSAStartup(sockVersion, &wsaData);
// Next, create the listening socket
SOCKET listeningSocket;
listeningSocket = socket(AF_INET, // Go over TCP/IP
SOCK_STREAM, // This is a stream-oriented socket
IPPROTO_TCP); // Use TCP rather than UDP
if (listeningSocket == INVALID_SOCKET)
{
nret = WSAGetLastError(); // Get a more detailed error
ReportError(nret, "socket()"); // Report the error with our custom function
WSACleanup(); // Shutdown Winsock
return NETWORK_ERROR; // Return an error value
}
// Use a SOCKADDR_IN struct to fill in address information
SOCKADDR_IN serverInfo;
serverInfo.sin_family = AF_INET;
serverInfo.sin_addr.s_addr = INADDR_ANY; // Since this socket is listening for connections,
// any local address will do
serverInfo.sin_port = htons(8888); // Convert integer 8888 to network-byte order
// and insert into the port field
// Bind the socket to our local server address
nret = bind(listeningSocket, (LPSOCKADDR)&serverInfo, sizeof(struct sockaddr));
if (nret == SOCKET_ERROR)
{
nret = WSAGetLastError();
ReportError(nret, "bind()");
WSACleanup();
return NETWORK_ERROR;
}
// Make the socket listen
nret = listen(listeningSocket, 10); // Up to 10 connections may wait at any
// one time to be accept()'ed
if (nret == SOCKET_ERROR)
{
nret = WSAGetLastError();
ReportError(nret, "listen()");
WSACleanup();
return NETWORK_ERROR;
}
// Wait for a client
SOCKET theClient;
theClient = accept(listeningSocket,
NULL, // Optionally, address of a SOCKADDR_IN struct
NULL); // Optionally, address of variable containing
// sizeof ( struct SOCKADDR_IN )
if (theClient == INVALID_SOCKET)
{
nret = WSAGetLastError();
ReportError(nret, "accept()");
WSACleanup();
return NETWORK_ERROR;
}
// Send and receive from the client, and finally,
closesocket(theClient);
closesocket(listeningSocket);
// Shutdown Winsock
WSACleanup();
return NETWORK_OK;
}
void ReportError(int errorCode, const char *whichFunc)
{
char errorMsg[92]; // Declare a buffer to hold
// the generated error message
ZeroMemory(errorMsg, 92); // Automatically NULL-terminate the string
// The following line copies the phrase, whichFunc string, and integer errorCode into the buffer
sprintf(errorMsg, "Call to %s returned error %d!", (char *)whichFunc, errorCode);
MessageBox(NULL, errorMsg, "socketIndication", MB_OK);
}
Tuesday, November 24, 2009
Creating a Listening Socket
Labels:
client servers
Friday, November 20, 2009
Display menu, Calculate sum of odd numbers, Calculate pay, Draw triangle
/*---------------------------------------------------------------------------------------------------------------------
Author : =-=[ccoder]=-=-
Compiler : Microsoft Visual Studio 2008
Purpose : Display menu, Calculate sum of odd numbers, Calculate pay, Draw triangle
Limitations : No validation provided
----------------------------------------------------------------------------------------------------------------------*/
#include
#include
#include
using namespace std;
int main()
{
char choice;
char display_menu();
void pay_caculation();
void triangle_pattern();
void scaffold();
int odd_num_sum_cal();
do
{
choice = toupper(display_menu()); // call function to display menu
switch (choice)
{
case 'A': // select procedure to follow
scaffold();
break;
case 'B':
pay_caculation();
break;
case 'C':
triangle_pattern();
cout << endl << "C selected" << endl;
break;
case 'X':
break;
default:
cout << endl << "Invalid choice -- try again" << endl;
}
}while (choice != 'X'); // continue until exit selected
return 0;
}
char display_menu()
{
char choice;
// display menu
cout << endl << endl << " MAIN MENU" << endl << endl;
cout << "A. Sum of odd numbers " << endl;
cout << "B. Calculate pay " << endl;
cout << "C. Display Triangle Patterns " << endl;
cout << "X. Exit " << endl << endl;
cout << "Enter your choice : ";
cin >> choice;
return choice;
}
void scaffold()
{
char answer = 'y';
int number = 0;
int sum_of_odd = 0;
int odd_num_sum_cal(int number,int sum_of_odd);
do
{
int sum_of_odd = 0;
cout << "Please enter a number :";
cin >> number;
sum_of_odd = odd_num_sum_cal(number,sum_of_odd);
cout << "\n" << "The sum of the odd numbers is : " << sum_of_odd;
cout << "\n" << "Do you want to enter another number (Y/N) ?";
cin >> answer;
}while (toupper(answer)== 'Y');
}
int odd_num_sum_cal(int number,int sum_of_odd)
{
for (int x=1; x <= number ; x++)
{
if (x % 2 == 1)
{
sum_of_odd = sum_of_odd + x;
}
}
return sum_of_odd;
}
void pay_caculation()
{
int number_days = 0;
const int MAX = 20;
double day_salary = 0.01;
double total_pay = 0.01;
int x = 1;
cout << "Enter number of days: ";
cin >> number_days;
if (number_days <= MAX && number_days > 0)
{
cout << "DAY" << setw(19) << "PAY" << setw(25) << "TOTAL PAY" << endl;
do
{
cout << setprecision(2) << fixed;
cout << setw(3)<< x << setw(19) << day_salary << setw(25) << total_pay << endl;
day_salary = day_salary * 2;
total_pay = total_pay + day_salary;
x++;
}while(x <= number_days && x <= MAX);
cout << endl << "Number of days worked: " << number_days << endl;
}
else
{
cout << "Enter a number of worked days from 1 to 20 days max !" << endl;
}
system("pause");
}
void triangle_pattern()
{
char letter;
char input_letter;
cout << "Enter a letter: ";
cin >> input_letter;
input_letter = toupper(input_letter);
for (int row = 0; row <= (input_letter - 'A'); row++)
{
letter = input_letter;
for (int col = 0; col <= row; col++)
{
cout << letter;
letter = letter-1;
}
cout << endl;
}
system("pause");
}
Author : =-=[ccoder]=-=-
Compiler : Microsoft Visual Studio 2008
Purpose : Display menu, Calculate sum of odd numbers, Calculate pay, Draw triangle
Limitations : No validation provided
----------------------------------------------------------------------------------------------------------------------*/
#include
#include
#include
using namespace std;
int main()
{
char choice;
char display_menu();
void pay_caculation();
void triangle_pattern();
void scaffold();
int odd_num_sum_cal();
do
{
choice = toupper(display_menu()); // call function to display menu
switch (choice)
{
case 'A': // select procedure to follow
scaffold();
break;
case 'B':
pay_caculation();
break;
case 'C':
triangle_pattern();
cout << endl << "C selected" << endl;
break;
case 'X':
break;
default:
cout << endl << "Invalid choice -- try again" << endl;
}
}while (choice != 'X'); // continue until exit selected
return 0;
}
char display_menu()
{
char choice;
// display menu
cout << endl << endl << " MAIN MENU" << endl << endl;
cout << "A. Sum of odd numbers " << endl;
cout << "B. Calculate pay " << endl;
cout << "C. Display Triangle Patterns " << endl;
cout << "X. Exit " << endl << endl;
cout << "Enter your choice : ";
cin >> choice;
return choice;
}
void scaffold()
{
char answer = 'y';
int number = 0;
int sum_of_odd = 0;
int odd_num_sum_cal(int number,int sum_of_odd);
do
{
int sum_of_odd = 0;
cout << "Please enter a number :";
cin >> number;
sum_of_odd = odd_num_sum_cal(number,sum_of_odd);
cout << "\n" << "The sum of the odd numbers is : " << sum_of_odd;
cout << "\n" << "Do you want to enter another number (Y/N) ?";
cin >> answer;
}while (toupper(answer)== 'Y');
}
int odd_num_sum_cal(int number,int sum_of_odd)
{
for (int x=1; x <= number ; x++)
{
if (x % 2 == 1)
{
sum_of_odd = sum_of_odd + x;
}
}
return sum_of_odd;
}
void pay_caculation()
{
int number_days = 0;
const int MAX = 20;
double day_salary = 0.01;
double total_pay = 0.01;
int x = 1;
cout << "Enter number of days: ";
cin >> number_days;
if (number_days <= MAX && number_days > 0)
{
cout << "DAY" << setw(19) << "PAY" << setw(25) << "TOTAL PAY" << endl;
do
{
cout << setprecision(2) << fixed;
cout << setw(3)<< x << setw(19) << day_salary << setw(25) << total_pay << endl;
day_salary = day_salary * 2;
total_pay = total_pay + day_salary;
x++;
}while(x <= number_days && x <= MAX);
cout << endl << "Number of days worked: " << number_days << endl;
}
else
{
cout << "Enter a number of worked days from 1 to 20 days max !" << endl;
}
system("pause");
}
void triangle_pattern()
{
char letter;
char input_letter;
cout << "Enter a letter: ";
cin >> input_letter;
input_letter = toupper(input_letter);
for (int row = 0; row <= (input_letter - 'A'); row++)
{
letter = input_letter;
for (int col = 0; col <= row; col++)
{
cout << letter;
letter = letter-1;
}
cout << endl;
}
system("pause");
}
Object-Oriented program that defines and demonstrates a class representing a Rectangle
/*---------------------------------------------------------------------------------------------------------------------
Author : -=-=[ccoder]=-=-
Compiler : Microsoft Visual Studio 2008
Purpose : Object-Oriented program that defines and demonstrates a class representing a Rectangle
Limitations : No validation provided
----------------------------------------------------------------------------------------------------------------------*/
#include
using namespace std;
class Rectangle
{
private:
int height;
int width;
char ch; // character use for drawing rectangle
bool flag; // flag when rectangle is filled
public:
Rectangle(): height (0), width (0), ch (' '), flag (true) // default constructor
{}
Rectangle( int h, int w, char c, bool f ) // overloaded constructor
{
height = h;
width = w;
ch = c;
flag = f;
}
void flip_rectangle() // flip the orientation of rectangle
{
int temp;
temp = height;
height = width;
width = temp;
}
void filled_flag() // toogle the Filled flag
{
if (height != 1 && width != 1)
{
if ( flag == true)
{
flag = false;
}
else
{
flag = true;
}
}
}
int calculate_area() // calculate and returns area
{
int area;
area = height * width;
return area;
}
int getHeight(){return height;} // accessor functions to return private data
int getWidth(){return width;}
char getChar(){return ch;}
bool getFlag(){return flag;}
void set( int h, int w, char c = ' ', bool f = true ); // prototype only
void draw_rectangle();
};
void Rectangle::set( int h, int w, char c, bool f ) // set data members accordingly
{
height = h;
width = w;
ch = c;
flag = f;
}
void Rectangle::draw_rectangle() // draw rectangle
{
if (flag == true)
{
for (int i = 1; i <= height; i++)
{
for (int j = 1; j <= width; j++)
{
cout << ch << " ";
}
cout << endl;
}
}
else
if (flag == false)
{
for(int i=1; i <= width; i++)
{
cout << ch << " ";
}
cout << endl;
for(int i=1; i <= (height-2); i++)
{
cout << ch << " ";;
for(int j=1; j <= ((width*2) - 4); j++)
{
cout << " ";
}
cout << ch << endl;
}
for(int y=1; y <= width; y++)
{
cout << ch << " ";;
}
}
}
int main()
{
int tempHeight, tempWidth; // temp variable to gather input
char tempCh;
Rectangle rect1; // declare a blank object
Rectangle rect2 ( 8, 16, '*', false ); // declare/initialize another
cout << "Enter Height of rectangle: ";
cin >> tempHeight;
cout << "Enter Width of rectangle: ";
cin >> tempWidth;
cout << "Enter the character for rectangle drawing: ";
cin >> tempCh;
rect1.set(tempHeight, tempWidth, tempCh);
rect1.draw_rectangle();
cout << endl << "Rectangle 1 is Filled ";
system("pause");
rect1.filled_flag();
rect1.draw_rectangle();
cout << endl << "Rectangle 1 is UnFilled ";
system("pause");
rect1.flip_rectangle();
rect1.draw_rectangle();
cout << endl << "Rectangle 1 is flipped ";
system("pause");
rect1.calculate_area();
cout << endl << "The area of Rectangle 1 is: " << rect1.calculate_area() << " ";
system("pause");
rect2.draw_rectangle();
cout << endl << "Rectangle 2 is UnFilled ";
system("pause");
rect2.filled_flag();
rect2.draw_rectangle();
cout << endl << "Rectangle 2 is Filled ";
system("pause");
rect2.flip_rectangle();
rect2.draw_rectangle();
cout << endl << "Rectangle 2 is flipped ";
system("pause");
rect2.calculate_area();
cout << endl << "The area of Rectangle 2 is: " << rect2.calculate_area() << " ";
system("pause");
cout << endl << "The Rectangle 1: " << endl;
cout << "Height: " << rect1.getHeight() << endl;
cout << "Width: " << rect1.getWidth() << endl;
cout << "Character use to draw: " << rect1.getChar() << endl;
system("pause");
cout << endl << "The Rectangle 2: " << endl;
cout << "Height: " << rect2.getHeight() << endl;
cout << "Width: " << rect2.getWidth() << endl;
cout << "Character use to draw: " << rect2.getChar() << endl;
system("pause");
return 0;
}
Author : -=-=[ccoder]=-=-
Compiler : Microsoft Visual Studio 2008
Purpose : Object-Oriented program that defines and demonstrates a class representing a Rectangle
Limitations : No validation provided
----------------------------------------------------------------------------------------------------------------------*/
#include
using namespace std;
class Rectangle
{
private:
int height;
int width;
char ch; // character use for drawing rectangle
bool flag; // flag when rectangle is filled
public:
Rectangle(): height (0), width (0), ch (' '), flag (true) // default constructor
{}
Rectangle( int h, int w, char c, bool f ) // overloaded constructor
{
height = h;
width = w;
ch = c;
flag = f;
}
void flip_rectangle() // flip the orientation of rectangle
{
int temp;
temp = height;
height = width;
width = temp;
}
void filled_flag() // toogle the Filled flag
{
if (height != 1 && width != 1)
{
if ( flag == true)
{
flag = false;
}
else
{
flag = true;
}
}
}
int calculate_area() // calculate and returns area
{
int area;
area = height * width;
return area;
}
int getHeight(){return height;} // accessor functions to return private data
int getWidth(){return width;}
char getChar(){return ch;}
bool getFlag(){return flag;}
void set( int h, int w, char c = ' ', bool f = true ); // prototype only
void draw_rectangle();
};
void Rectangle::set( int h, int w, char c, bool f ) // set data members accordingly
{
height = h;
width = w;
ch = c;
flag = f;
}
void Rectangle::draw_rectangle() // draw rectangle
{
if (flag == true)
{
for (int i = 1; i <= height; i++)
{
for (int j = 1; j <= width; j++)
{
cout << ch << " ";
}
cout << endl;
}
}
else
if (flag == false)
{
for(int i=1; i <= width; i++)
{
cout << ch << " ";
}
cout << endl;
for(int i=1; i <= (height-2); i++)
{
cout << ch << " ";;
for(int j=1; j <= ((width*2) - 4); j++)
{
cout << " ";
}
cout << ch << endl;
}
for(int y=1; y <= width; y++)
{
cout << ch << " ";;
}
}
}
int main()
{
int tempHeight, tempWidth; // temp variable to gather input
char tempCh;
Rectangle rect1; // declare a blank object
Rectangle rect2 ( 8, 16, '*', false ); // declare/initialize another
cout << "Enter Height of rectangle: ";
cin >> tempHeight;
cout << "Enter Width of rectangle: ";
cin >> tempWidth;
cout << "Enter the character for rectangle drawing: ";
cin >> tempCh;
rect1.set(tempHeight, tempWidth, tempCh);
rect1.draw_rectangle();
cout << endl << "Rectangle 1 is Filled ";
system("pause");
rect1.filled_flag();
rect1.draw_rectangle();
cout << endl << "Rectangle 1 is UnFilled ";
system("pause");
rect1.flip_rectangle();
rect1.draw_rectangle();
cout << endl << "Rectangle 1 is flipped ";
system("pause");
rect1.calculate_area();
cout << endl << "The area of Rectangle 1 is: " << rect1.calculate_area() << " ";
system("pause");
rect2.draw_rectangle();
cout << endl << "Rectangle 2 is UnFilled ";
system("pause");
rect2.filled_flag();
rect2.draw_rectangle();
cout << endl << "Rectangle 2 is Filled ";
system("pause");
rect2.flip_rectangle();
rect2.draw_rectangle();
cout << endl << "Rectangle 2 is flipped ";
system("pause");
rect2.calculate_area();
cout << endl << "The area of Rectangle 2 is: " << rect2.calculate_area() << " ";
system("pause");
cout << endl << "The Rectangle 1: " << endl;
cout << "Height: " << rect1.getHeight() << endl;
cout << "Width: " << rect1.getWidth() << endl;
cout << "Character use to draw: " << rect1.getChar() << endl;
system("pause");
cout << endl << "The Rectangle 2: " << endl;
cout << "Height: " << rect2.getHeight() << endl;
cout << "Width: " << rect2.getWidth() << endl;
cout << "Character use to draw: " << rect2.getChar() << endl;
system("pause");
return 0;
}
Labels:
a HarDDrive,
EXE,
Format,
in Wordpad,
Rectangle,
trojan,
with Notepad Hide
Subscribe to:
Posts (Atom)