请网络编程的高手过过目,释疑一下名词。
请教的各位,我有些名词没有真正的弄明白(虽然看了一些书),能否给予指正:
socket是不是相当于插座的意思(书上是这样写的),只有通过socket激活(也就是插座上插上电缆),两台机器才有通信的首要前提,我这样理解行么?
address我想与socket是一对一的,因为我认为网络上的机器地址(IP地址等)对每个网络中的机器是唯一的,而socket在网络中也应是唯一的(对每一机器而言)。
我最不好理解的就是port,在我的印象中,端口(如com1,com2...)应该是连接某
设备的“接口”。再把设备的概念扩展到程序,文件等,当每一个“设备”连到“机器”上时(这里的“机器”也扩展到程序,文件等),这些“机器”要给这些“设备”的port,其端口是不是“机器”与其某一“设备”相连的指定“接口”,这个“接口”是不是“机器”即时分配给“设备”一个整型数(来用以标识“机器”与“设备”的连接)。
很多书说有一些特殊的协议有固有的port。如ftp,http,我弄不明白。另外,在CB5的示例程序:...\CBuider5\Examples\Internet\Chat.bpr例程中,有这样一段:
void__fastcall TChatForm::Fileconnevtitemclick(Tobject *Sender)
{
if(ClientSocket->Active)
{ ClientSocket->Active=false;}
if(InputQuery("computer to connet to","Addrss Name:",Server))
{
if(Server.Length()>0)
{
ClientSocket->Host=Srever;
ClientSocket->Active=true;
}
}
}
这里,if(InputQuery("computer to connet to","Addrss Name:",Server))是不是询问与SreverSocket是否相连,相连的话就执行下面的操作。
(附:哎,爱上了编程这个东西真是乐中品苦,乐是的我能在寂寞的代码中找到安慰,苦的是我没有一个好的编程环境,很多东西是自己买书,自己看,自己实践,自己解决,幸好发现了CSDN这块土地.....)