VC++学习笔记 4

来源:互联网 发布:淘宝开店 工商注册 编辑:程序博客网 时间:2024/06/12 21:00

声明:此为小白学习VC++的学习笔记,因没能在CSDN当中找到相应的私密博客权限,如果有人看到这些文字,请忽略!谢谢!

网络编程

闲来有事没事写笔记。先发波无知的牢骚——互联网寒冬是什么?小弟文章没看过,见识也短浅,但不时听到互联网寒冬一词(标题略略浏览)。互联网寒冬是什么?是码农太多了么?创意太多了,太重了么?不敢妄言。但是小弟是做硬件出生的,而且是纯硬件出生的。大家都有共识,国内硬件与国外的差了一大截~更别说软硬件结合的。如果看不到头,来一波人搞下物联网吧!~下面先道道书上关于网络编程的基础知识。

IP
网络每台主机的全球唯一性的逻辑地址。以下引用一下百度知道上IP与MAC的区别:
这里写图片描述
协议
为进行网络中数据交换而建立的规则、标准或约定(语义+语法+规则)说得直接点就是在数据前面或者后面加入协议头或者协议尾,在协议头当中定义了“”语义+语法+规则“”,在读取数据时按照协议的规则才能正确读取出数据
ISO、OSI( Open System Interconnection)
__应用层 ——>处理网络应用
__表示层——>数据表示
__会话层——>主机间通信
__传输层——>端对端的连接 。TCP UDP 数据报协议。
__网络层——>寻址和最短路径
__数据链路层——>介质访问 (在EtherCat 由ESC ET1100相关电路完成数据链路)
__物理层——>二进制传输 (无非是RJ45 接口,MII 接口芯片等)

TCP/IP 简化模型
应用层+表示层+会话层 = 应用层 ; 数据链路+物理层 = 网络接口。

TCP (面向连接)的socket编程
①加载套接字库

(#include Winsock2.h+Link ws2_32.lib )->创建套接字( socket(AF_INET , SOCK_STREAM/SOCK_DGRAM) , 0 )

②绑定一个本地地址和端口bind(socket ,address ,size)。其中address 由SOCKADDR结构体进行定义。

③ (Listen)将套接字设为监听模式,准备接收客户请求。并设置同时能接受的请求的客户数。监听功能函数名都差不多,在ANDROID 4 java 当中 按钮的监听函数也是 Listener()

④TCP——服务器端通过Acept () 等待客户请求带来,并返回一个带客户端口地址信息的socket ,以后便可用带有客户信息的套接字给客户发送信息。而客户端通过connect ()发起连接请求。
UDP——直接发送信息与接受信息,不需要产生固定连接。
send /recv (TCP ) sento/recvfrom(UDP)

⑤返回,继续等待请求

线程阻塞问题
无论是RECV 还是RECVFROM ,都会BLOCK 程序,如果在同一个程序中同时实现接受与发送数据功能,类似QQ 有接受窗口与发送窗口,可以使用多线程实现功能,不过QQ的两个窗口分开是否有改变的可能?

0 0
原创粉丝点击