文档库 最新最全的文档下载
当前位置:文档库 › MFC套接字编程简介

MFC套接字编程简介

windows socket套接字
Microsoft提供了基础的类库,数据通信由上层应用层到下层的物理层,然后再传输到上层进行数据交换。
OSI七层模型具体每层的实现由相应的软件来实现。
TCP/IP协议实际上是一个协议簇,分为应用层,数据传输层,网络层,数据链路层。
C/S编程模型:基于可靠连接的模型,上访必须使用各自的IP地址和端口进行通信。
client请求server
server应答client
server与client交换数据
client断开连接server


MFC socket简单
Windows API 使用户熟悉了解网络的结构和原理


TCP 套接字 流式套接字
UDP 套接字 数据报


MFC
cAsyncSocket 异步
cSocket
步骤:
1、调用构造函数创建套接字对象。
2、若创建了server端套接字,则调用Bind()绑定本地IP和端口,然后调用Listen()监听Client request,若收到请求,则调用Accept()响应该请求,若创建客户端套接字,直接调用connect()连接server即可。
3、调用send等函数进行数据传输与处理
4、关闭或销毁套接字对象
注意:MFC中所有类,均有一个变量 m_hWnd 表示该类的实例句柄。


cSocket派生于cAsyncSocket类,具有串行化句柄,使用cSocket类与CSocketFile类和CArchive一起使用。
1、创建cSocket类对象。
2、创建server Socket 调用Bind()绑定本地IP和端口,调用Listen()监听请求
3、创建与Csocket相关的CSocketFile对象
4、创建与CsocketFile相关的CArchive对象
5、使用CArchive对象在客户端和服务端进行数据交互传输
6、关闭或者销毁Csocket类CSocketFile和CArchive类的三个对象


套接字编程
1、套接字是由伯克利大学提出并设计的一种在网络中不同主机之间进行数据通信的桥梁。
2、寻址方式,字节顺序
寻址方式:区分程序所使用的网络协议
WinSocket数据结构
struct Socketaddr_in{
short sin_family; //地址格式,地址家族
unsigned sin_port; //端口号
struct in_addr; //ip地址结构,32位
char sin_zero[8]; //做备用,默认是0
}
struct in_addr{
union{
struct{
unsigned char s_b1,s_b2,s_b3,s_b4
}8_un_b;
struct{
unsigned _short s_w1,s_w2
}s_un_w
unsigned long s_addr
}s_um
}
socketaddr_in addr;
addr.sin_addr s_un, $_addr="net_addr" //net_addr是加端口的
在程序net_addr函数将字符串IP转换为以网络字节顺序的IP地址
字节顺序:字节转换函数 u_short htons(s_short host short);
CSocket CSocket();

相关文档