1 TCP
Server Side
#include "stdafx.h" #include <stdio.h> #include <winsock2.h> #pragma comment (lib, "Ws2_32.lib") int main (int
ARGC, char* argv[]) {//initialize WSA WORD sockversion = Makeword (2,2);
Wsadata Wsadata;
if (WSAStartup (sockversion, &wsadata)!=0) {return 0;
///Create socket Socket Slisten = socket (af_inet, sock_stream, ipproto_tcp);
if (Slisten = = Invalid_socket) {printf ("SOCKET error!");
return 0;
}//Binding IP and Port sockaddr_in sin;
sin.sin_family = af_inet;
Sin.sin_port = htons (8888); Sin.sin_addr. S_un.
S_ADDR = Inaddr_any;
if (Bind (Slisten, (lpsockaddr) &sin, sizeof (sin)) = = Socket_error) {printf ("Bind ERROR!");
//Start listening if (Listen (Slisten, 5) = = Socket_error) {printf ("Listen ERROR!");
return 0;
///loop receive data SOCKET sclient;
Sockaddr_in remoteaddr;
int naddrlen = sizeof (REMOTEADDR);
Char revdata[255];
while (true) { printf ("Wait for connection ... \ n");
Sclient = Accept (Slisten, (SOCKADDR *) &remoteaddr, &naddrlen);
if (sclient = = Invalid_socket) {printf ("Accept error!");
Continue
printf ("Accept a connection:%s \ r \ n", Inet_ntoa (REMOTEADDR.SIN_ADDR));
Receive data int ret = recv (sclient, Revdata, 255, 0);
if (Ret > 0) {Revdata[ret] = 0x00;
printf (revdata); //Send Data char * senddata = "Hello, tcp client."
\ n ";
Send (Sclient, SendData, strlen (SendData), 0);
Closesocket (sclient);
} closesocket (Slisten);
WSACleanup ();
return 0; }
client End
#include "stdafx.h" #include <winsock2. H> #include <stdio.
h> #pragma comment (lib, "Ws2_32.lib") int main (int argc, char* argv[]) {WORD sockversion = Makeword (2,2);
Wsadata data;
if (WSAStartup (sockversion, &data)!= 0) {return 0;
Socket sclient = socket (af_inet, sock_stream, ipproto_tcp);
if (sclient = = Invalid_socket) {printf ("INVALID SOCKET!");
return 0;
} sockaddr_in seraddr;
seraddr.sin_family = af_inet;
Seraddr.sin_port = htons (8888); Seraddr.sin_addr. S_un.
S_ADDR = inet_addr ("127.0.0.1");
if (Connect (sclient, (SOCKADDR *) &seraddr, sizeof (seraddr)) = = Socket_error) {printf ("Connect ERROR!");
Closesocket (sclient);
return 0;
char * senddata = "Hello, tcp server, I am client!\n";
Send (Sclient, SendData, strlen (SendData), 0);
Char recdata[255];
int ret = recv (sclient, Recdata, 255, 0);
if (Ret > 0) {Recdata[ret] = 0x00; printf (recdata);
} closesocket (sclient);
WSACleanup ();
return 0; }
2 UDP
Server Side
#include "stdafx.h" #include <stdio.h> #include <winsock2.h> #pragma comment (lib, "Ws2_32.lib") int main (in
T argc, char* argv[]) {wsadata wsadata;
WORD sockversion = Makeword (2,2);
if (WSAStartup (sockversion, &wsadata)!= 0) {return 0;
Socket sersocket = socket (af_inet, SOCK_DGRAM, IPPROTO_UDP);
if (Sersocket = = Invalid_socket) {printf ("SOCKET error!");
return 0;
} sockaddr_in seraddr;
seraddr.sin_family = af_inet;
Seraddr.sin_port = htons (8888); Seraddr.sin_addr. S_un.
S_ADDR = Inaddr_any;
if (Bind (Sersocket, (SOCKADDR *) &seraddr, sizeof (seraddr)) = = Socket_error) {printf ("Bind ERROR!");
Closesocket (Sersocket);
return 0;
} sockaddr_in remoteaddr;
int naddrlen = sizeof (REMOTEADDR);
while (true) {char recvdata[255];
int ret = Recvfrom (Sersocket, RecvData, 255, 0, (SOCKADDR *) &remoteaddr, &naddrlen); if (Ret > 0) {Recvdata[ret] = 0x00;
printf ("Accepted to a connection:%s \ r \ n", Inet_ntoa (REMOTEADDR.SIN_ADDR));
printf (recvdata);
char * senddata = "A UDP packet from the server \ n";
SendTo (Sersocket, SendData, strlen (SendData), 0, (SOCKADDR *) &remoteaddr, Naddrlen);
} closesocket (Sersocket);
WSACleanup ();
return 0; }
Client Side
#include "stdafx.h"
#include <stdio.h>
#include <winsock2.h>
#pragma comment (lib, "ws2_32. Lib ")
int main (int argc, char* argv[])
{
WORD socketversion = Makeword (2,2);
Wsadata Wsadata;
if (WSAStartup (socketversion, &wsadata)!= 0)
{return
0;
}
Socket sclient = socket (af_inet, SOCK_DGRAM, ipproto_udp);
Sockaddr_in sin;
sin.sin_family = af_inet;
Sin.sin_port = htons (8888);
Sin.sin_addr. S_un. S_ADDR = inet_addr ("127.0.0.1");
int len = sizeof (sin);
char * senddata = "Packets from the client. \ n";
SendTo (Sclient, SendData, strlen (SendData), 0, (SOCKADDR *) &sin, Len);
Char recvdata[255];
int ret = Recvfrom (sclient, RecvData, 255, 0, (SOCKADDR *) &sin, &len);
if (Ret > 0)
{
Recvdata[ret] = 0x00;
printf (recvdata);
}
Closesocket (sclient);
WSACleanup ();
return 0;
}
Blog Original: http://blog.csdn.net/oinux/article/details/8525823