Server:
// Netsrv. cpp
# Include <winsock2.h> <br/> # include <stdio. h> <br/> void main () {<br/> // mide Delete word <br/> word wversionrequested; <br/> wsadata; <br/> int err; <br/> wversionrequested = makeword (2, 2); <br/> err = wsastartup (wversionrequested, & wsadata); <br/> If (Err! = 0) {<br/> return; <br/>}< br/> If (lobyte (wsadata. wversion )! = 2 | hibyte (wsadata. whighversion )! = 2) <br/>{< br/> wsacleanup (); <br/> return; <br/>}</P> <p> socket socksrv = socket (af_inet, sock_dgram, 0); </P> <p> sockaddr_in addrsrv; <br/> addrsrv. sin_addr.s_un.s_addr = htonl (inaddr_any); <br/> addrsrv. sin_family = af_inet; <br/> addrsrv. sin_port = htons (6000); </P> <p> BIND (socksrv, (sockaddr *) & addrsrv, sizeof (sockaddr )); </P> <p> char recvbuf [100]; <br/> char sendbuf [100]; <br/> char tempbuf [100]; </P> <p> sockaddr_in ad Drclient; <br/> int Len = sizeof (sockaddr); </P> <p> while (1) <br/>{< br/> recvfrom (socksrv, recvbuf, 100,0, (sockaddr *) & addrclient, & Len); <br/> If ('q' = recvbuf [0]) <br/> {<br/> sendto (socksrv, "Q", strlen ("Q") + 1, 0, (sockaddr *) & addrclient, Len ); <br/> printf ("chat end! /N "); <br/> break; <br/>}</P> <p> sprintf (tempbuf," % s say: % s ", inet_ntoa (addrclient. sin_addr), recvbuf); <br/> printf ("% s/n", tempbuf); <br/> printf ("Please input data:/N "); <br/> gets (sendbuf); <br/> sendto (socksrv, sendbuf, strlen (sendbuf) + 1, 0, (sockaddr *) & addrclient, Len ); </P> <p >}< br/> closesocket (socksrv); <br/> wsacleanup (); <br/>}
Client:
// Netclient. cpp
# Include <winsock2.h> <br/> # include <stdio. h> <br/> void main () {<br/> // mide Delete word <br/> word wversionrequested; <br/> wsadata; <br/> int err; <br/> wversionrequested = makeword (2, 2); <br/> err = wsastartup (wversionrequested, & wsadata); <br/> If (Err! = 0) {<br/> return; <br/>}< br/> If (lobyte (wsadata. wversion )! = 2 | hibyte (wsadata. whighversion )! = 2) <br/>{< br/> wsacleanup (); <br/> return; <br/>}</P> <p> socket sockclient = socket (af_inet, sock_dgram, 0); </P> <p> sockaddr_in addrsrv; <br/> addrsrv. sin_addr.s_un.s_addr = inet_addr ("127.0.0.1"); <br/> addrsrv. sin_family = af_inet; <br/> addrsrv. sin_port = htons (6000); </P> <p> char recvbuf [100]; <br/> char sendbuf [100]; <br/> char tempbuf [100]; </P> <p> int Len = sizeof (sockaddr); </P> <p> while (1) <br/>{< br/> printf ("ple ASE input data:/N "); <br/> gets (sendbuf); <br/> sendto (sockclient, sendbuf, strlen (sendbuf) + 1, 0, (sockaddr *) & addrsrv, Len); <br/> recvfrom (sockclient, recvbuf, 100,0, (sockaddr *) & addrsrv, & Len ); <br/> If ('q' = recvbuf [0]) <br/> {<br/> sendto (sockclient, "Q", strlen ("Q ") + 1,0, (sockaddr *) & addrsrv, Len); <br/> printf ("chat end! /N "); <br/> break; <br/>}</P> <p> sprintf (tempbuf," % s say: % s ", inet_ntoa (addrsrv. sin_addr), recvbuf); <br/> printf ("% s/n", tempbuf); <br/>}< br/> closesocket (sockclient ); <br/> wsacleanup (); <br/>}
Note:
Both the server and client must "Project Properties" ---> "configuration properties" ----> "Link" ----> "input" ---> "add" ws2_32.lib "to" additional dependencies"