Server (acceptor) Program:
1. Create a socket)
2. Bind the socket to a local address and port (BIND)
3. Data to be received (recvfrom)
4. Disable socket.
Client (sender) Program
1. Create a socket)
2. Send data (sendto) to the server)
3. Close the socket.
Server code:
# Include <winsock2.h>
# Include <stdio. h>
Void main ()
{
Word wversionrequested;
Wsadata;
Int err;
Wversionrequested = makeword (1, 1 );
Err = wsastartup (wversionrequested, & wsadata );
If (Err! = 0)
{
Reutrn;
}
If (lobyte (wsadata. wversion )! = 1 | hibyte (wsadata. wversion )! = 1)
{
Wsacleanup ();
Return;
}
Socket socksrv = socket (af_inet, sock_dgram, 0 );
Sockaddr_in addrsrv;
Addrsrv. sin_addr.s_un.s_addr = htonl (inaddr_any );
Addrsrv. sin_family = af_inet;
Addrsrv. sin_port = htons (6000 );
BIND (socksrv, (sockaddr *) & addrsrv, sizeof (sockaddr ));
Sockaddr_in addrclient;
Int Len = sizeof (sockaddr );
Char recvbuf [100];
Recvfrom (socksrv, recvbuf, 100,0, (sockaddr *) & addrclient, & Len );
Printf ("% s/n", recvbuf );
Cloasesocket (socksrv );
Wsacleanup ();
}
Client Lu code:
# Include (winsock2.h>
# Include <stdio. h>
Void main ()
{
Word wversionrequested;
Wsadata;
Int err;
Wversionrequested = makeword (1, 1 );
Err = wsastartup (wversionrequested, & wsadata );
If (Err! = 0)
{
Return;
}
If (lobyte (wsadata. wversion )! = 1 | hibyte (wsadata. wversion )! = 1)
{
Wsacleanup ();
Return;
}
Socket sockclient = socket (af_inet, sock_dgram <0 );
Sockaddr_in addrsrv;
Addrsrv. sin_addr.s_un.s_addr = inet_addr ("127.0.0.1 ");
Addrsrv. sin_family = af_inet;
Addrsrv. sin_port = htons (6000 );
Sendto (sockclient, "hello", strlen ("hello") + 1,0, (sockaddr *) & addrsrv, sizeof (sockaddr )):
Closesocket (sockclient );
Wsacleanup ();
}