预备:
加载套接字库:
#include <Winsock2.h>
#include <stdio.h>
还需要添加链接库ws2_32.lib(工程=设置=链接=对象/库模块)
WORD wVersionRequested; //准备加载Winsock库的版本,注意高字节是副版本号
WSADATA wsaData; //是一个返回值,指向WSADATA结构的指针,WSAStartup函数将其加载的库版本信息输入到这个结构体中。
int err;
wVersionRequested = MAKEWORD(1,1);
err = WSAStartup(wVersionRequested,&wsaData);
if(0 != err){
return;
}
if(LOBYTE(wsaData.wVersion) != 1 || HIBYTE(wsaData.wVersion) != 1){
WSACleanup(); //如果加载的版本不正确,返回。需要注意的是高字节是副版本号,低字节是主版本号
return;
}
过程:
1.创建套接字(socket)。
2.向服务器发出连接请求(connect)。
3.和服务器端进行通讯(send/recv)。
4.关闭套接字。
实现:
1.创建套接字(socket)。
SOCKET sockClient=socket(AF_INET,SOCK_STREAM,0);
2.想服务器发送连接请求(connect)。
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);
connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
//connect其他没有什么说的,主要是第二个参数,设定要连接服务器的地址信息
3.和服务器端进行通讯(send/recv)。
char recvBuf[100];
recv(sockClient,recvBuf,100,0);
printf("%s\n",recvBuf);
send(sockClient,"This is lisi",strlen("This is lisi")+1,0);
4.关闭套接字
closesocket(sockClient);
WSACleanup();