VC深入详解

十四.网络编程

网络七层结构:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层

七层相关关系:上层依赖下层,上层使用下层提供的服务。

客户机服务器模式:客户机主动请求,服务器等待请求,服务器先启动。

服务端Socket建立流程:1.Socket 2.bind 3.listen 4.accept 5.Send/Resv

客户端建立Socket流程:1.Socket 2.Connect 3.Send/Resv

十六.线程同步与异步套接字编程

线程同步:事件、临界区、互斥锁

事件:分为人工重置和自动重置的内核态线程锁。

临界区:用户态的线程锁。

互斥锁:内核态的线程锁。

异步套接字原理:基于Socket的进一步封装,应用非阻塞的异步模式进行通信。

MFC函数:WSAAsyncSelect(...);WSARecvFrom(...);WSASendTo(...);

十七.进程间通信

进程间通信方式:共享内存、消息队列、管道、socket

1.共享内存(剪切板)

原理:由内核分配一块内存,可以让系统内任何进程进行访问。

优势:1.效率高。2.可以多个进程同时访问

劣势:1.必须加锁,防止一个进程读的同时另一个进程写。2.应用条件限制,两个进程必须在同一个主机下。

MFC相关函数:OpenClipBoard(...);CloseClipBoard(...);EmptyClipBoard(...);SetClipBoard(...);GetClipBoard(...);IsClipBoardFormatAviable(...);GlobalLock(...)lGlobalUnlock(...);

2.管道

管道原理:字节流通信,将一个进程的标准输出和另一个进程的标准输入连在一起。相当于进程用啊哦做字节流的方式间接的操作由内核维护的内存区。

特点:1.一对一。2.单向

劣势:1.可能会造成阻塞。2.管道的打开和关闭的相关问题。

MFC相关函数:CreatePipe(...);CreateProcess(...);ReadFile(...);CreateNamePipe(...);ConnectNamePipe(...);CreatEvent(...);WaitNamePipe(...);

3.消息队列

原理:通过进程接口调用独立于通信进程之外的共享缓冲区,进行数据的读和写操作。

优势:1.相对于管道来说对进程数量没有限制。2.不会阻塞。3.可以设置消息优先级。

劣势:1.相对于内存共享效率较低。2.需要加锁,防止读写同步。

函数:一般用第三方库来实现,比如ActiveMq

猜你喜欢

转载自www.cnblogs.com/grantzhang/p/8907457.html
vc