网络编程是一种非常流行的一种编程技能,相信很多人在日常生活中会经常用到,比如大家在使用手机上的蓝牙进行传输数据,其实就是利用了网络编程的成果。今天我就和大家讨论一下这方面的知识,如有不妥的地方,还请大家海涵。
网络编程杂谈 其实,我也是最近刚开始了一点的网络编程的工作,接触的并不是很深,但是我们愿意和大家,尤其是刚接触网络编程的朋友来聊聊这项技术。在刚接触网络编程,大家肯定会认为这是一个比较复杂的系统工程,必须要有足够的编程经验才能完成,并且需要很多网络相关的基础知识,但是如果你想完成一个很小的项目,来测验一下网络编程的话,其实是一件很简单的事情。打个不恰当的比喻吧,当鼠标刚被制造出来,很多没见过的人都认为这是一个很复杂的东西,其实真的是这样么?如今这个复杂的东西这不是也是在你的手下被你灵活的拖来拖去么?其实一个初学者想入门一下网络编程的话,就像使用鼠标一样简单,很多东西都已经给你封装好了,你只需要使用这些函数,便可以成功的进行编程。 所谓网络编程就是两个或者两个以上的设备,比如手机、计算机,之间进行传输数据。一个编程者所需要的做的事情就是控制发送数据,也就是何时发送数据,发送给谁。在发送和接受数据时,很多程序设计语言都设计了专门的API来实现这些功能,我们只需要调用即可。 Java网络编程简单介绍 由于我接触的网络编程都是java和android(也是用java编写,几乎是复制了java的编程),那么今天我就以java为例来给大家介绍网络编程。 对于网络编程来说,主要是计算机与计算机、计算机与移动设备来进行通讯,那么他们之间是如何十倍对方呢?我们首先来了解一下IP地址的概念,就是通过IP地址来进行识别的。 相信大家对IP地址并不陌生,在网络中每台设备都会有一个唯一的IP地址,比如186.168.23.755。他是这样定义的:我们现在命名的IP地址是IPv4协议,该协议规定每个IP地址由4个0-255之间的数字组成,例如186.168.23.755。IP是英文Internet Protocol的简称, 它是有一个32位的二进制数组成,通常被分割为4个“8位二进制数”(也就是4个字节)。IP地址通常用“点分十进制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之间的十进制整数。 每个接入网络的计算机都拥有唯一的IP地址,这个IP地址可能是固定的,例如网络上各种各样的服务器,也可以是动态的,例如使用ADSL拨号上网的宽带用户,无论以何种方式获得或是否是固定的,每个计算机在联网以后都拥有一个唯一的合法IP地址,就好像我们人类都有自己的名字。 在网络中传输的数据,全部是以IP地址作为地址标识,所以在实际传输数据以前需要将域名转换为IP地址,实现这种功能的服务器称之为DNS服务器,也就是通俗的说法叫做域名解析。例如当用户在浏览器输入域名时,浏览器首先请求DNS服务器,将域名转换为IP地址,然后将转换后的IP地址反馈给浏览器,然后再进行实际的数据传输。 当DNS服务器正常工作时,使用IP地址或域名都可以很方便的找到计算机网络中的某个设备,例如服务器计算机。当DNS不正常工作时,只能通过IP地址访问该设备。所以IP地址的使用要比域名通用一些。 了解的人还会知道,网络编程中对设备的识别还有一个端口的概念,那我们也介绍一下。如果把IP地址比作一间房子 ,端口就是出入这间房子的门。真正的房子只有几个门,但是一个IP地址的端口可以有65536(即:2^16)个之多!端口是通过端口号来标记的,端口号只有整数,范围是从0 到65535(2^16-1)。 在Internet上,各主机间通过TCP/IP协议发送和接收数据包,各个数据包根据其目的主机的ip地址来进行互联网络中的路由选择。可见,把数据包顺利的传送到目的主机是没有问题的。问题出在哪里呢?我们知道大多数操作系统都支持多程序(进程)同时运行,那么目的主机应该把接收到的数据包传送给众多同时运行的进程中的哪一个呢?显然这个问题有待解决,端口机制便由此被引入进来。 那么有了IP地址和端口,我们便可以识别设备,就可以开始网络编程的第一步了,大家可以到网上找到相关的代码,按照作者的教程,改好你的IP地址和端口号,便可以进行传输数据了。当然网络编程还有很多其他的知识,今天我们先讲这么多,我接下来我会更新这方面知识。 |