对于初学者或者没有接触过网络编程的程序员会觉得网络编程涉及的知识很高深很难其实这是一种误解当你的语法熟悉以后其实基本的网络编程现在已经被实现的异常简单了
网络编程是什么?
网络编程的本质是两个设备之间的数据交换当然在计算机网络中设备主要指计算机数据传递本身没有多大的难度不就是把一个设备中的数据发送给两外一个设备然后接受另外一个设备反馈的数据
现在的网络编程基本上都是基于请求/响应方式的也就是一个设备发送请求数据给另外一个然后接收另一个设备的反馈
在网络编程中发起连接程序也就是发送第一次请求的程序被称作客户端(Client)等待其他程序连接的程序被称作服务器(Server)客户端程序可以在需要的时候启动而服务器为了能够时刻相应连接则需要一直启动例如以打电话为例首先拨号的人类似于客户端接听电话的人必须保持电话畅通类似于服务器
连接一旦建立以后就客户端和服务器端就可以进行数据传递了而且两者的身份是等价的
在一些程序中程序既有客户端功能也有服务器端功能最常见的软件就是BTemule这类软件了
下面来谈一下如何建立连接以及如何发送数据
IP地址和域名
在现实生活中如果要打电话则需要知道对应人的电话号码如果要寄信则需要知道收信人的地址在网络中也是这样需要知道一个设备的位置则需要使用该设备的IP地址具体的连接过程由硬件实现程序员不需要过多的关心
IP地址是一个规定现在使用的是IPv既由个之间的数字组成在计算机内部存储时只需要个字节即可在计算机中IP地址是分配给网卡的每个网卡有一个唯一的IP地址如果一个计算机有多个网卡则该台计算机则拥有多个不同的IP地址在同一个网络内部IP地址不能相同IP地址的概念类似于电话号码身份证这样的概念
由于IP地址不方便记忆所以有专门创造了域名(Domain Name)的概念其实就是给IP取一个字符的名字例如comsinacom等IP和域名之间存在一定的对应关系如果把IP地址类比成身份证号的话那么域名就是你的姓名
其实在网络中只能使用IP地址进行数据传输所以在传输以前需要把域名转换为IP这个由称作DNS的服务器专门来完成
所以在网络编程中可以使用IP或域名来标识网络上的一台设备
[] []