春暖花开
雪化了,花开了,春天来了
posts - 149,comments - 125,trackbacks - 0
引一个老师的话:“来网络中心不懂网络”。的确在这里学习了近一年,网络的皮毛都没摸着,惭愧!!甚至汗颜。
做的项目有网络的,但一直不属于我涉及范围,让我眼馋羡慕,不过想想自己也不懂,外加也没个氛围,从一开始想,到后面不想,甚至到现在有些懒得不想碰了。也只能说明任何一个人,大多像我这样的,不是机遇没来找你,而是你与他擦身而过罢了。
今天也闲得发慌,突然想到了,学习一下。

基于 TCP/IP 的 SOCKET 编程的基本原理

目的: TCP/IP 所组建网络的不同机器之间利用客户/服务器模式建立通信连接。
方法:为建立该连接,开发人员只要提供一些基本的连接信息,其余由操作系统内核来完成。

提供哪些信息呢?
以机器A通过 TCP/IP 与机器B进行网络通信为例,对于机器A来说我们需要知道如下信息:
1、机器B的TCP/IP地址:
2、与机器B中哪一个进程(或软件系统)联系。


同样的对于第一个我还可以理解,第二个就不是很清楚。作者缓缓到来,原来使用标准接口的时候,无须定义,因为我们知道和谁进行交互,然而使用其它的则没有那么明了,所以就需要提供第二个参数了。

以上两个需要提供的参数,在套接字中分别表示为机器B的地址和机器B的通信端口。通过在同一机器的不同通信软件中定义不同端口地址,来表示机器A是与机器B中哪套系统通信。不管是利用何种协议,完全建立一个网络连接需要五个基本信息。它们分别是双方的地址约定的通讯端口协议类型。SOCKET 通信编程接口并不是专门为 TCP/IP 通信提供的,因此套接字通信编程需要在参数中指明通信协议类型。套接字是利用客户/服务器模式来实现通信的,客户端软件和服务器端软件的具体实现也有所不同。

具体来说,在客户端利用基于 TCP/IP 和 SOCKET 通信编程的基本步骤是:
① 声明一个套接字类型的变量,需要在该变量定义中提供本机 IP 地址和通信端口并指明协议类型,由于在此介绍的是基于 TCP/IP 的套接字通信,因此协议类型应该是 TCP/IP,在编程接口中该类型用 AF-INET 来表示;
② 向对方发出连接请求,连接时编程者需要提供对方 TCP/IP 地址和通信端口,同时 SOCKET 实现程序自动向对提供本机 TCP/IP 地址和通信端口;
③ 如果连接成功,会收到对方的应答信号,这以后的通信就可以通过套接字的相关操作来实现了。

步骤:第一步是要声明一个套接字类型的变量,并在该变量定义中提供本机的IP地址、通信端口和协议类型。
             第二步向对方发送连接请求。此时需要知道对方的地址和端口,并向对方提供地址和通信端口。

看起来挺简单的,今年一月份还想做一个代理服务器的小程序,一直搞不清楚怎么回事,最后作罢。

努力呀。

学习内容的来源:http://zeuscn.net/studio/2007/09/14/tcp-ip-socket/
posted on 2008-08-01 15:09 Sandy 阅读(948) 评论(0)  编辑 收藏 引用 所属分类: 杂项学习

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理