ip地址和端口号
ip地址是用来标识唯一台主机
端口号是用来标识主机上的一个应用程序
网络通信和我们平时打电话时一样的。
IP地址是相当于公司的总机号码,端口号是分机号码,在打电话的时候,拨通总机号码后,还需要转到分机上。
因特网上的ip地址具有全球的唯一性
ip地址在每台主机上是唯一的。32位点分十进制表示。
协议(tcp/ip)
套接字(socket)
socket的出现,使得程序员很方便的访问tcp/ip,
客户向服务器提出请求,
服务器接收到请求后,提供相应的服务。
套接字分为3种类型
流套接字
数据报式套接字
原始套接字
基于TCP面向连接的socket编程
服务器端
7步:
1,创建套接字(socket)
2,将套接字绑定到一个本地地址和端口上(bind)
3,将套接字设为监听模式,准备接收客户请求(listen)
4,等待客户请求到来,当请求到来后,接受连接请求,返回一个新的对应于此连接的套接字(accept)
5,用返回的套接字和客户端进行通讯(send/.recv)
6,返回,等待另一客户请求
7,关闭套接字
客户端
4步
服务器(accept)等待接收客户端的(connect)
然后,二者建立了连接,之后用
send,recv进行通信。
问客户端为什么不用bind?
答,因为在客户端发送请求,服务端收到请求后,一旦建立连接,就已经保存了客户端的ip地址和端口号的信息了
对于UDP的socket编程,
对于用套接字进行通信,与利用电话机进行通信,是一样的,套接字是相当于电话机,IP地址相当于总机号码。端口号相当于分机