Socket套接字编程--CSocket类简单介绍

Windows网络程序开发均是基于Windows套接字实现的,介绍下CSocket类编程的基本流程。

1.创建套接字

CSocket sock;//通过构造函数创建套接字对象

 

2.绑定地址信息

将套接字对象与服务器地址信息绑定在一起。

/*结构体详细信息
struct in_addr
{
	union
	{
		struct
		{
			unsigned char s_b1, s_b2, s_b3, s_b4;
		}S_un_b;//用4个u_char字符描述IP地址
		struct
		{
			unsigned short s_w1, s_w2;
		}S_un_w;//用2个u_short类型描述IP地址
		unsigned long S_addr;//用1个u_long类型描述IP地址---
	}S_un;
};

struct sockaddr_in
{
	short			sin_family;//指定地址家族即地址格式
	unsigned		sin_port;//端口号码
	struct in_addr	sin_addr;//IP地址
	char			sin_zero[8];//需要指定为0
};
*/
sockaddr_in addr;//定义套接字地址结构变量
addr.sin_family = AF_INET;//地址家族TCP/IP
addr.sin_port = htons(80);//端口号
addr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");//字符串IP->网络字节IP
sock.Bind((SOCKADDR*)addr,sizeof(addr));//调用成功返回true;否则,返回false

在服务器端,当地址信息绑定套接字成功后,还需要在指定端口监听客户端的连接请求。

sock.Listen(5);//监听端口,默认5个,也是最大数量

 

3.连接服务器

客户端创建套接字成功后,可以向服务器发送连接请求。

CSocket sock;
sockaddr_in addr;
addr.sin_family = AF_INET;
addr.sin_port = htons(80);
addr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
sock.Connect((SOCKADDR*)addr,sizeof(addr));//连接服务器,成功返回true

 

4.数据交换

无论是服务器,还是客户端都通过函数Send()和Receive()进行数据交换。

char buff[] = 'a';//定义并初始化数据缓冲区
sock.Send(&buff,sizeof(buff),0);//发送数据缓冲区中的数据
sock.Receive(&buff,sizeof(buff),0);//接收数据并将数据存放在数据缓冲区中

 

5.关闭套接字对象

 

当服务器和客户端的通信完成以后,必须将套接字对象关闭。

sock.Close();//关闭套接字对象

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值