UDP:
Server
#include "stdafx.h"
#include <stdio.h>
#include <Winsock2.h>
#pragma comment (lib, "Ws2_32.lib")
void Main ()
{
WORD wversionrequested;
Wsadata 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 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 (5010);
Bind (Socksrv, (sockaddr*) &addrsrv,sizeof (sockaddr));
Char recvbuf[100];
Char sendbuf[100];
Char tempbuf[200];
Sockaddr_in addrclient;
int len=sizeof (SOCKADDR);
while (1)
{
Recvfrom (socksrv,recvbuf,100,0, (sockaddr*) &addrclient,&len);
if (' Q ' ==recvbuf[0])
{
SendTo (socksrv, "Q", strlen ("Q") +1,0, (sockaddr*) &addrclient,len);
printf ("Chat end!\n");
Break
}
sprintf (Tempbuf, "%s say:%s", Inet_ntoa (ADDRCLIENT.SIN_ADDR), recvbuf);
printf ("%s\n", tempbuf);
/*
printf ("Please input data:\n");
Gets (SENDBUF);
SendTo (Socksrv,sendbuf,strlen (SENDBUF) +1,0, (sockaddr*) &addrclient,len);
*/
}
Closesocket (SOCKSRV);
WSACleanup ();
}
Client
void Main ()
{
WORD wversionrequested;
Wsadata 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);
Char recvbuf[100];
Char sendbuf[100];
Char tempbuf[200];
int len=sizeof (SOCKADDR);
while (1)
{
printf ("Please input data:\n");
Gets (SENDBUF);
SendTo (Sockclient,sendbuf,strlen (sendbuf) +1,0,
(sockaddr*) &addrsrv,len);
Recvfrom (sockclient,recvbuf,100,0, (sockaddr*) &addrsrv,&len);
if (' Q ' ==recvbuf[0])
{
SendTo (sockclient, "Q", strlen ("Q") +1,0,
(sockaddr*) &addrsrv,len);
printf ("Chat end!\n");
Break
}
sprintf (Tempbuf, "%s say:%s", Inet_ntoa (ADDRSRV.SIN_ADDR), recvbuf);
printf ("%s\n", tempbuf);
}
Closesocket (sockclient);
WSACleanup ();
}
TCP
Server:
WORD wversionrequested;
Wsadata 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 Socksrv=socket (af_inet,sock_stream,0);//tcp
SOCKET Socksrv=socket (af_inet,sock_dgram,0);//udp
Sockaddr_in Addrsrv;//server
Sockaddr_in addrfrom;//client
int Fromlen =sizeof (addrfrom);
Addrsrv.sin_addr. S_un. S_addr=htonl (Inaddr_any);
Addrsrv.sin_family=af_inet;
Addrsrv.sin_port=htons (5010);
bind (Socksrv, (sockaddr*) &addrsrv,sizeof (sockaddr));
Listen (socksrv,5);
Sockaddr_in addrclient;
int len=sizeof (SOCKADDR);
while (1)
{
SOCKET sockconn=accept (Socksrv, (sockaddr*) &addrclient,&len);
Char sendbuf[50];
sprintf (SendBuf, "Welcome%s to here!", Inet_ntoa (ADDRCLIENT.SIN_ADDR));
Send (Sockconn,sendbuf,strlen (SENDBUF) +1,0);
Char recvbuf[50];
Recv (sockconn,recvbuf,50,0);
printf ("%s\n", recvbuf);
Closesocket (Sockconn);
}
Client
WORD wversionrequested;
Wsadata 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_stream,0);
SOCKET Sockclient=socket (af_inet,sock_dgram,0);
Sockaddr_in addrsrv;
Addrsrv.sin_addr. S_un. S_ADDR=INET_ADDR ("192.168.0.202");
Addrsrv.sin_family=af_inet;
Addrsrv.sin_port=htons (5010);
Connect (sockclient, (sockaddr*) &addrsrv,sizeof (sockaddr));
Send (sockclient, "Hello word", strlen ("Hello word") +1,0);
Char recvbuf[50];
Recv (sockclient,recvbuf,50,0);
printf ("%s\n", recvbuf);
Send (Sockclient,recvbuf,strlen (RECVBUF) +1,0);
Closesocket (sockclient);
WSACleanup ();