socket编程 客户端编程

#include <Winsock2.h>
#include <stdio.h> //一定要在属性页中连接处,键入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 sockClient = socket(AF_INET, SOCK_STREAM, 0);
//地址结构体变量
SOCKADDR_IN addrSrv;//地址结构体变量
//对地址结构体成员进行赋值    使用htonl讲u_long;类型将主机字节序转换为TCP/IP网络字节序
/*
如果我们只想让套接字使用多个IP中的一个地址,就必须指定实际地址,要做到这一点,可以使用inet_addr()函数
这个函数需要一个字符串作为其参数,还字符串指定了以点分十进制格式表示的IP地址(如192.168.1.13)。
而且inet_addr()函数会返回一个适合分配给S_addr的数字。
inet_ntoa()函数会完成想反的转换,它接受一个in_addr结构体类型参数并返回一个以点分十进制格式表示的IP地址字符串
*/
addrSrv.sin_addr.S_un.S_addr = inet_addr("192.168.1.12");
addrSrv.sin_family = AF_INET;
addrSrv.sin_port = htons(6000);
//建立连接
connect(sockClient, (SOCKADDR*)&addrSrv, sizeof(SOCKADDR));


char recvBuf[100];
//接收数据
recv(sockClient, recvBuf, 100, 0);
printf("%s\n", recvBuf);
//发送数据
send(sockClient,"this is zhangsan",strlen("this is zhangsan")+1,0);


closesocket(sockClient); //关闭套接字,释放为该应用程序分配的资源
WSACleanup(); //终止对套接字库的使用
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值