首先建议读者明白网络、IP地址、协议等概念。应用层协议TeLnet,FTP,HTTP,DNS,SMTP,POP3等。传输层协议TCP(面向连接、可靠),UDP(无连接不可靠)。UDP实时性好,故广泛使用.网络层协议IP,ICMP(互联网控制报文协议),IGMP(Internet组管理协议).
数据封装:每一层都会加上自己的信息头或者称为协议头.有的层也会加入尾部.传输可以看成为一个在发送端不断封装,接受端不断解封.
端口:TCP/IP协议提出了端口概念,包括数据结构和I/O缓冲区.用一个整数型标识符来表示,用16位表示,从0~65534,我们应用程序使用1024以上的端口号.
套接字Socket:应用程序访问通信协议的一种操作系统调用,用于快速方便的开发网络程序.Windows Sockets只支持一个通信区域(AF_INET),这个域被使用网际协议通信区域通信的进程所使用.注意:基于Intel的CPU采用低位先存格式,而TCP/IP协议采用高位先存格式.
Windows Sockets提高了很多异步函数供我们使用.可以使用任何底层传输协议提高的通信能力.其类型包括:流式套接字(基于tcp实现),数据报式套接字(基于udp),还有一种原始套接字.
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)基于tcp的套接字编程步骤:
client
1.创建一个套接字.
2.向服务器发请求(connect).
3.和服务器通信.
4.关闭套接字.
server
1.创建套接字.(socket)
2.将套接字邦定到本地地址和端口上(bind)
3.套接字监听(listen)
4.收到客户端请求,返回一个新的对应于此次连接的套接字(accept)
其中包括了客户端的相关信息.
5.用返回的套接字和客户端进行通信(send/recv);
6.返回,监听等待另一个用户.
7.关闭套接字.
基于udp的套接字编程步骤:
sender:
1.创建Socket;
2.向服务器发送消息(sendto);
3.关闭套接字.
receiver:
1.创建Socket;
2.绑定到本地地址端口(listen);
3.接受数据(recvfrom);
4.关闭套接字.