引用
龙行天下 的 VC socket编程
VC socket编程一 服务器端建立一个空的基于控制台的应用程序 TCPserver引入头文件:WINSOCK2.H在Project——settings——link——object/libary modules 下引入:ws2_32.lib库
#include <WINSOCK2.H>
#include <stdio.h>int main()
{
//MSDN中找到,引入socket库
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested=MAKEWORD(1,1);
err=WSAStartup(wVersionRequested,&wsaData);
if (err!=0)
{
return 0;
}
if (LOBYTE(wsaData.wVersion)!=1||
HIBYTE(wsaData.wVersion)!=1)
{
WSACleanup();
return 0;
}
SOCKET sockSrv=socket(AF_INET,SOCK_STREAM,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));
listen(sockSrv,5);
SOCKADDR_IN addrClient;
int len=sizeof(SOCKADDR);while (TRUE)
{
SOCKET sockTemp=accept(sockSrv,(SOCKADDR *)&addrClient,&len);char sendbuff[1024];
sprintf(sendbuff,"Welcome to zhangjie");//将字符串格式化到buff中去
send(sockTemp,sendbuff,strlen(sendbuff)+1,0);char recvBuff[1024];
recv(sockTemp,recvBuff,strlen(recvBuff)+1,0);
printf("%s/n",recvBuff);closesocket(sockTemp);
}
return 0;
}
一 客户端建立一个空的基于控制台的应用程序 TCPClient引入头文件:WINSOCK2.H在Project——settings——link——object/libary modules 下引入:ws2_32.lib库
#include <WINSOCK2.H>
#include <stdio.h>int main()
{
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested=MAKEWORD(1,1);
err=WSAStartup(wVersionRequested,&wsaData);
if (err!=0)
{
return 0;
}
if (LOBYTE(wsaData.wVersion)!=1||
HIBYTE(wsaData.wVersion)!=1)
{
WSACleanup();
return 0;
}
SOCKET sockClient=socket(AF_INET,SOCK_STREAM,0);SOCKADDR_IN addrClient;
addrClient.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");//点分十进制转化成ULong类型
addrClient.sin_family=AF_INET;
addrClient.sin_port=htons(6000);//转化成网络字节序
connect(sockClient,(SOCKADDR *)&addrClient,sizeof(SOCKADDR));
char recvBuff[1024];recv(sockClient,recvBuff,1024,0);
printf("%s/n",recvBuff);send(sockClient,"I am zhangjie ",strlen("I am zhangjie ")+1,0);
closesocket(sockClient);
WSACleanup();
return 0;
}