服务器端::::::::::
#include <winsock2.h>
#include <stdio.h>
void main()
{
//加载套接字库,版本协商
WORD wVersionRequired;
WSADATA wsaData;
int err;
//请求库
//WSAStartup( WORD wVersionRequired, WSADATA lpWSAData );
wVersionRequired = MAKEWORD(1,1);
err = WSAStartup( wVersionRequired, &wsaData );
if ( err !=0 )
{
//不等于0就退出
printf("error");
return;
}
//高字节和低字节都不为1
if (LOBYTE( wsaData.wVersion ) != 1 || HIBYTE( wsaData.wVersion) != 1)
{
WSACleanup();
return;
}
//加载完后创建套接字
//SOCKET socket( int af, int type, int protocal);
//WSAGETLASTERROR();获得错误
SOCKET sockSrv = socket( AF_INET, SOCK_STREAM,0 );
//int bind(SOCKET s, const struct sockAddr FAR *name,int namelen);
//该套接字本地地址信息const struct sockAddr FAR *name
//inet_addr 将点分十进制字符串转换为u_long类型,相反的是inet_ntoa
//bind();
SOCKADDR_IN addrSrv;
addrSrv.sin_addr.S_un.S_addr= htonl(INADDR_ANY);//??????????
addrSrv.sin_family = AF_INET;
addrSrv.sin_port=htons(5000);//>1024
bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
//监听模式
//int listen(SOCKET s,int backlog);
//等待连接队列最大值设置5
listen(sockSrv,5);
#include <stdio.h>
void main()
{
}
客户端::::::::::::::
#include <winsock2.h>
#include <stdio.h>
void main()
{
//加载套接字库,版本协商
WORD wVersionRequired;
WSADATA wsaData;
int err;
//请求库
//WSAStartup( WORD wVersionRequired, WSADATA lpWSAData );
wVersionRequired = MAKEWORD(1,1);
err = WSAStartup( wVersionRequired, &wsaData );
if ( err !=0 )
{
//不等于0就退出
return;
}
//高字节和低字节都不为1
if (LOBYTE( wsaData.wVersion) != 1 || HIBYTE( wsaData.wVersion) != 1 )
{
WSACleanup();
return;
}
#include <stdio.h>
void main()
{
}