端口的概念
为了在一台设备上可以运行多个程序人为的设计了端口(Port)的概念类似的例子是公司内部的分机号码
规定一个设备有个也就是个端口每个端口对应一个唯一的程序每个网络程序无论是客户端还是服务器端都对应一个或多个特定的端口号由于之间多被操作系统占用所以实际编程时一般采用以后的端口号
使用端口号可以找到一台设备上唯一的一个程序
所以如果需要和某台计算机建立连接的话只需要知道IP地址或域名即可但是如果想和该台计算机上的某个程序交换数据的话还必须知道该程序使用的端口号
数据传输方式
知道了如何建立连接下面就是如何传输数据了先来看一下数据传输的方式
在网络上不管是有线传输还是无线传输数据传输的方式有两种
<!——[if !supportLists]——>l <!——[endif]——>TCP(Transfer Control Protocol)
传输控制协议方式该传输方式是一种稳定可靠的传送方式类似于显示中的打电话只需要建立一次连接就可以多次传输数据就像电话只需要拨一次号就可以实现一直通话一样如果你说的话不清楚对方会要求你重复保证传输的数据可靠
使用该种方式的优点是稳定可靠缺点是建立连接和维持连接的代价高传输速度不快
<!——[if !supportLists]——>l <!——[endif]——>UDP(User Datagram Protocol)
用户数据报协议方式该传输方式不建立稳定的连接类似于发短信息每次发送数据都直接发送发送多条短信就需要多次输入对方的号码该传输方式不可靠数据有可能收不到系统只保证尽力发送
使用该种方式的优点是开销小传输速度快缺点是数据有可能会丢失
在实际的网络编程中大家可以根据需要选择任何一种传输方式或组合使用这两种方式实现数据的传递
协议的概念
协议(Protocol)是网络编程中一个非常重要的概念指的是传输数据的格式因为大家在网络中需要传输各种各样的信息在程序中获得到的都是一组数值如何阅读这些数值呢就需要提前规定好这组数据的格式在客户端按照该格式生成发送数据服务器端按照该格式阅读该数据然后在按照一定的格式生成数据反馈给客户端客户端再按照该格式阅读数据现实中类似的例子就是电报编码每个数字都是用特定的数据表达
一般程序的协议都分成客户端发送的数据格式以及服务器端反馈的数据格式客户端和服务器端都遵循该格式生成或处理数据实现两者之间的复杂数据交换
小结
网络编程就是使用IP地址或域名和端口连接到另一台计算机上对应的程序按照规定的协议(数据格式)来交换数据实际编程中建立连接和发送接收数据在语言级已经实现做的更多的工作是设计协议以及编写生成和解析数据的代码罢了然后把数据转换成逻辑的结构显示或控制逻辑即可
[] []