Haha, I finally wrote the first Socket program! ! I wish to be a good basing:
// Client.cpp: Defines the entry point for the console application.
//
// client
#include "stdafx.h"
#include
#include
#pragma comment (Lib, "WS2_32.LIB")
Int main (int Argc, char * argv [])
{
Socket Socket_Client = -1;
Try
{
// Windows initialization
Printf ("**** client stated! **** / n");
Wsadata wsadata;
IF (WsaStartup (Makelong (1,0), & WSADATA)! = 0)
{
"" WSAStartup () ");
Return -1;
}
// Initialize Socket
Socket_client = Socket (AF_INET, SOCK_STREAM, 0);
IF (Socket_Client <0)
{
Throw ("socket ()");
}
// Native information
SockAddr_in my_addr;
MY_ADDR.SIN_FAMILY = AF_INET;
MY_ADDR.SIN_PORT = HTONS (5555);
MY_ADDR.SIN_ADDR.S_UN.S_ADDR = INADDR_ANY
MEMSET (MY_ADDR.SIN_ZERO, 0, 8);
// Bind port
INT NBIND = BIND (socket_client, (socketdr *) & my_addr, sizeof (my_addr));
IF (Nbind <0)
{
Throw ("Bind ()");
}
//connection:
SockAddr_in Server_Add;
Server_add.sin_family = af_INet;
Server_add.sin_port = HTONS (3490);
Server_add.sin_addr.s_un.s_addr = inet_addr ("192.168.0.119);
MEMSET (Server_Add.sin_zero, 0, 8);
INT NCON = Connect (socket_client, (sockaddr *) & Server_add, sizeof (server_add));
IF (NCON <0)
{
Throw ("" "");
}
}
Catch (Char * LPERRORFUNC)
{
Printf ("ERROR WHEN CALLING:% S / N", LPERRORFUNC);
}
IF (socket_client! = -1)
CloseSocket (Socket_Client);
WSACLEANUP ();
Return 0;
}
// Server.cpp: defines the entry point for the console application.
//
//server
#include "stdafx.h"
#include "stdafx.h"
#include
#include
#pragma comment (lib, "ws2_32.lib") int Main (int Argc, char * argv [])
{
Socket Socket_server = -1;
Try
{
// Windows initialization
Printf ("**** server stat! **** / n");
Wsadata wsadata;
IF (WsaStartup (Makelong (1,0), & WSADATA)! = 0)
{
Throw "WSAStartup ()";
}
// Initialize Socket
Socket_server = socket (AF_INET, SOCK_STREAM, 0);
IF (socket_server <0)
{
Throw "socket ()";
}
// Native information
SockAddr_in my_addr;
MY_ADDR.SIN_FAMILY = AF_INET;
MY_ADDR.SIN_PORT = HTONS (3490);
MY_ADDR.SIN_ADDR.S_UN.S_ADDR = INADDR_ANY
MEMSET (MY_ADDR.SIN_ZERO, 0, 8);
// Bind port
INT NBIND = BIND (socket_server, (socketdr *) & my_addr, sizeof (my_addr));
IF (Nbind <0)
{
Throw "bind ()";
}
//
INT nlisten = listen (socket_server, 5);
IF (NListen <0)
{
Throw "listen ()";
}
//monitor
Printf ("Listening ... / N");
SockAddr_in their_addr;
Int nsize;
nsize = sizeof (their_addr);
INT nnewfd = accept (socket_server, (socketdr *) & their_addr, & nsize);
// There is user access
Printf ("Accepted! IP:% S: Port:% D / N", INET_NTOA (THEIR_ADDR.SIN_ADDR), NTOHS (THEIR_ADDR.SIN_PORT);
BEEP (500, 1000);
Char szbuf [255];
Scanf ("% s", szbuf);
}
Catch (Char * LPERRORFUNC)
{
Printf ("ERROR WHEN CALLING:% S / N", LPERRORFUNC);
}
IF (socket_server! = -1)
CloseSocket (Socket_server);
WSACLEANUP ();
Return 0;
}