服务端
#include <Winsock2.h>
#include <stdio.h>
#pragma comment(lib,"Ws2_32.lib")
int main (void)
{
//加载套接字
WORD wVersionRequested=MAKEWORD(2,2);
WSADATA lpWSAData;
WSAStartup(wVersionRequested,&lpWSAData);
//创建socket
SOCKET sockSrv=socket(AF_INET,SOCK_STREAM,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(1234);
//绑定端口
if (bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR))==SOCKET_ERROR)
{
printf("绑定端口失败!\n");
return 0;
}
//监听
if (listen(sockSrv,5)==SOCKET_ERROR)
{
printf("绑定套接字失败!\n");
return 0;
}
printf("服务器运行中TCP协议端口1234\n");
SOCKADDR_IN addrClient;
int len=sizeof(SOCKADDR);
while (true)
{
//等待客户端连接
SOCKET sockconn=accept(sockSrv,(SOCKADDR*)&addrClient,&len);
char Sendbuff[100]={0};
char Recvbuff[100]={0};
sprintf(Sendbuff,"Welcone %s to WebServer!",inet_ntoa(addrClient.sin_addr));
send(sockconn,Sendbuff,strlen(Sendbuff)+1,0);
recv(sockconn,Recvbuff,100,0);
printf("来自客户端:%s的消息%s\n",inet_ntoa(addrClient.sin_addr),Recvbuff);
closesocket(sockconn);
}
closesocket(sockSrv);
WSACleanup();
getchar();
return 0;
}
客户端
#include <Winsock2.h>
#include <stdio.h>
#pragma comment (lib,"Ws2_32.lib")
int main (void)
{
//加载套接字
WORD wVersionRequested=MAKEWORD(2,2);
WSADATA lpWSAData;
WSAStartup(wVersionRequested,&lpWSAData);
//创建socket
SOCKET sockSrv=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
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(1234);
//连接
if (connect(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR))==SOCKET_ERROR)
{
printf("连接失败\n");
return 0;
}
char Sendbuff[100]={0};
char Recvbuff[100]={0};
recv(sockSrv,Recvbuff,100,0);
printf("%s\n",Recvbuff);
sprintf(Sendbuff,"this zhangsan");
send(sockSrv,Sendbuff,strlen(Sendbuff+1),0);
closesocket(sockSrv);
WSACleanup();
getchar();
return 0;
}
2015年3月3日14:59:03
程序执行结果如下:
服务端
服务器运行中TCP协议端口1234
来自客户端:127.0.0.1的消息this zhangsa
客户端
Welcone 127.0.0.1 to WebServer!