1.什么是Socket
?
-
Socket
是网络编程的一个抽象概念。通常我们用一个Socket
表示"打开了一个网络链接",而打开一个Socket
需要知道目标计算机的IP
地址和端口号port
,再指定协议类型即可。
2.大多数链接都是可靠的TCP
连接。创建TCP
连接时,主动发起连接的叫客户端,被动响应连接的叫服务器。
3.如何确定服务器的端口号?
- 作为服务器,提供什么样的服务,端口号就必须固定下来。(80端口是
Web
服务的标准端口、SMTP
服务是25端口、FTP
服务是21端口)
4.SMTP:Simple Mail Transfer Protocol - 简单邮件传输协议
5.接收从新浪服务器响应的数据
6.服务器
①服务器进程首先需要绑定一个端口来监听来自其他客户端的连接。如果某个客户端连接过来了,服务器就与该客户端建立Socket
连接,随后的通信就是靠这个Socket
连接的。
②往往一台服务器会有大量来自客户端的连接,如何区分一个Socket
连接是与哪个客户端绑定的?
- 一个
Socket
由四部分组成:服务器地址、服务器端口、客户端地址、客户端端口。
7.模拟服务器和客户端
8.小结
①对于客户端,要主动连接服务器的IP
的指定端口;对于服务器,首先需要监听指定端口,然后,对于每一个新的连接,创建一个线程或进程来处理。
②同一个端口,被一个Sokcet
绑定以后,就不能被别的Sokcet
绑定了。
9.使用UDP
协议时,不需要建立连接,只需知道对方的IP
地址和端口号,就可以直接发送数据包。但是,能不能到达就不知道了。它的优点是速度快。
10.一封电子邮件的旅程:
发件人 -> MUA -> MTA -> 若干MTA -> MDA <- MUA -<收件人
MUA:Mail User Agent - 邮件用户代理
MTA:Mail Transfer Agent - 邮件传输代理
MDA:Mail Delivery Agent - 邮件投递代理
-
Email
到达MDA
后,就会静静地躺在某个服务器上,存放在某个文件或特殊的数据库里,我们将这个长期保存邮件的地方称之为电子邮箱。 - 发邮件时,
MUA
和MTA
使用的协议是SMTP
,后面的MTA
到另一个MTA
用的也是SMTP
(Simple Mail Transfer Protocol) - 发邮件时,
MUA
和MDA
使用的协议有两种:POP
(Post office Protocol);IMAP
(Internet Message Access Protocol) - 不但能获取邮件,还能直接操作MDA
上存储的邮件。