java 网络编程-(1)引入网络编程

网络编程现在是非常普遍的编程技术了,网络编程无非就是两台或者多台设备(通常是计算机)之间的相互通信,相互之间的数据传输。网络编程的实质其实就是程序和程序之间的相互通信,相互传递数据。在网络通信中,第一次主动发起通信请求的成为客户端(Client),第一次通信中等待连接的称为服务器端(Server),在网络通信的过程中,Client端和Server端没有本质的区别。

那么,怎样才能通过客户端找到服务器从而进行网络通信呢?答案就是通过ip来找到服务器,我们都知道,服务器上运行着多个程序,也就是多个进程,那么这是就要通过端口号来唯一的确定某台服务器上的某个运行的程序了,格式为“ip:port”,因此,当你在浏览器(客户端)中输入ip:port后,就会发送请求,服务器响应后返回结果给浏览器,你就可以看到内容了。但是,ip:port很难记忆,这是就出现了域名的概念,如:当你输入www.baidu.com的时候,就会跳转到百度的服务器,你会看到百度的首页,但实际上还是通过ip:port来访问服务器的,你可以输入103.235.46.39:80看一下,会和你输入www.baidu.com的结果一样。那么,是怎样将一个域名解析成指定的ip:port呢,这时就会存在一个DNS服务器(域名解析服务器),用来动态的讲域名解析到指定的服务器上某一个运行的程序,以实现客户端和服务器之间的互联。

在网络通信的过程中,最常见的通信模型就是“请求-相应”模型,也就是说,客户端发一个请求,服务器端接收到请求处理后响应给客户端的过程。那么现在问题来了,客户端怎样发送一个请求,服务器成功接收处理后,响应给客户端呢,这时,就需要网络协议了。协议,顾名思义就是客户端和服务器之间的约定,按照约定的请求数据格式和响应数据格式来实现网络通信,显然,这种约定应该遵循“简单,方便,实用”的原则,这样才能保证客户端和服务器端通信的成功率。其实,协议就可以随意编写的,只要按照编写的协议格式能够生成唯一的编码,按照该编码可以唯一的解析出发送数据的内容就可以了。正因为各个网络程序之间协议格式的不同,所以客户端程序都是专用的、特殊的结构。

实际的网络编程中,基本就是发送(send)和接收(accept)两个操作。大多数支持网络编程技术的编程语言,都有特定的api,内部封装了这两个操作的接口,编程的时候直接调用就可以了。其实,网络编程中最难的就是网络协议的设计,这是网络编程中最核心的内容,有兴趣的可以研究下RFC原理。

时间: 2024-10-11 04:10:09

java 网络编程-(1)引入网络编程的相关文章

Java笔记二十三.网络编程基础与UDP编程

网络编程基础与UDP编程 转载请表明出处:http://blog.csdn.net/u012637501(嵌入式_小J的天空) 一.网络编程基础 1.TCP/IP协议:TCP/IP协议是一个非常实用的网络应用程序通信协议,包括TCP(传输控制协议)和IP地址(计算机唯一标识号). 2.IP地址:IP在互联网中能唯一标识一台计算机,是每一台计算机的唯一标识(身份证),通过这个标识号来指定接收数据的计算机和识别发送数据的计算机,该标识号即为IP地址. (1)Ipv4:指在计算机中IP地址用4个字节(

Java网络编程之TCP网络编程

一.基于Socket的TCP编程 Java语言的基于套接字编程分为服务端编程和客户端编程,其通信模型如图所示: 二.客户端Socket的工作过程(四个基本步骤) 1.创建Socket根据指定服务端的IP地址或端口号构造Socket类对象.若服务器端响应,则建立客户端到服务器的通信线路:若连接失败,会出现异常.2.打开连接到Socket的输入出流使用getlnputStream()方法获得输入流,使用getOutputStream()方法获得输出流,进行数据传输.3.按照一定的协议对Socket

Java网络编程:初识网络编程

网络编程 什么是计算机网络 两台或更多的计算机组成的网络 同一网络内的任意两台计算机可以直接通信 所有计算机必须遵循同一种网络协议 什么是互联网 互联网是网络的网络 互联网采取TCP/IP协议 其中最重要的两个协议是TCP协议和IP协议 IP地址和网关 IP地址用于唯一标识一个网络接口 IPv4采用32位地址 IPv4地址实际是一个二进制32位的整数,为了便于识别,用十六进制表示后可以分为4组数字,每组数字转换成十进制后用"."隔开就是我们见到的IP地址: IPv6采用128位地址 公

Android网络编程之获取网络上的XML

Android网络编程之获取网络上的XML 请尊重他人的劳动成果,转载请注明出处:Android网络编程之获取网络上的XML 为要获取网络上的XML所以需要服务器端提供的支持. 一.创建服务器端: 服务器端项目结构: 服务器端运行效果图: 第一步:创建业务所需的JavaBean package com.jph.server.model; import java.util.Date; /** * 新闻实体类 * @author jph * Date:2014.09.26 */ public cla

Android网络编程之获取网络上的Json

Android网络编程之获取网络上的Json 请尊重他人的劳动成果,转载请注明出处:Android网络编程之获取网络上的Json 为要获取网络上的Json所以需要服务器端提供的支持. 一.创建服务器端: 服务器端项目结构: 服务器端运行效果图: 第一步:创建业务所需的JavaBean package com.jph.sj.model; import java.util.Date; /** * 新闻实体类 * @author jph * Date:2014.09.26 */ public clas

iOS开发——网络编程OC篇&Socket编程

Socket编程 一.网络各个协议:TCP/IP.SOCKET.HTTP等 网络七层由下往上分别为物理层.数据链路层.网络层.传输层.会话层.表示层和应用层. 其中物理层.数据链路层和网络层通常被称作媒体层,是网络工程师所研究的对象: 传输层.会话层.表示层和应用层则被称作主机层,是用户所面向和关心的内容. http协议   对应于应用层 tcp协议    对应于传输层 ip协议     对应于网络层 三者本质上没有可比性.  何况HTTP协议是基于TCP连接的. TCP/IP是传输层协议,主要

Unix 环境高级编程 (APUE) 之 网络 IPC:套接字

一起学 Unix 环境高级编程 (APUE) 之 网络 IPC:套接字 . . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编程 (APUE) 之 文件和目录 (四) 一起学 Unix 环境高级编程 (APUE) 之 系统数据文件和信息 (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境 (六) 一起学 Unix 环境高级编程 (APU

(十三) [终篇] 一起学 Unix 环境高级编程 (APUE) 之 网络 IPC:套接字

. . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编程 (APUE) 之 文件和目录 (四) 一起学 Unix 环境高级编程 (APUE) 之 系统数据文件和信息 (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境 (六) 一起学 Unix 环境高级编程 (APUE) 之 进程控制 (七) 一起学 Unix 环境高级编程 (APUE)

网络编程练习 -- 检测网络状态

LWTViewController.m // // LWTViewController.m // 网络编程练习 -- 检测网络状态 // // Created by apple on 14-7-2. // Copyright (c) 2014年 lwt. All rights reserved. // #import "LWTViewController.h" #import "Reachability.h" @interface LWTViewController

Linux平台QT数据库编程(来自网络)

Linux平台QT数据库编程 在linux平台使用qt来编写GUI程序,在进行数据库编程的时候,有两种选择方式,分别是:基于linux平台的数据库接口函数编程,另一种是使用qt自带的有关数据库类.那在这里我分别来讲一下这两种方式的实现. 一.使用linux平台的数据库接口编程: 在这里我使用的是一款免费的数据库sqlite,从网络上下一个sqlite-3.0.8.tar.gz源码包,然后进行安装,安装好后就可以使用它提供的函数接口.接下来我们用安装好的sqlite提供的函数接口,在QT中使用的,