网络编程概述和IP地址的获取方法
java网络通信概述
一、网络通信步骤:
主机1 主机2
QQ-------QQ
FEIQ-----FEIQ
1.找到对方IP。
2.找到对方端口号。数据要发送到对方的应用程序上。为了标识这些应用程序,所以给这些网络应用程序都用数字进行标识。 为了方便称呼这个数字,叫做端口。注意此处是逻辑端口。
3.定义通信规则。这个通讯规则称为协议。 国际组织定义了通用的协议TCP/IP。

二、备注说明:
为了安全起见,一些单位,特别是保密工作,用的协议和大家用的协议都不一样,那么别人想入侵他根本入侵不了,除非破解协议。
127.0.0.1本地回环地址。也就是说如果本机没有配置任何地址时候默认地址。 用途之一:测试网卡。ping 127.0.0.1
192端,保留地址段。用于局域网。
三、端口范围
端口 0--65535
一般来说:0--1024 系统程序保留,一般开发程序不用,防止冲突。
常见端口:web-80;tomcat-8080;mysql:3306。
四、通讯规则:UDP、TCP
五、网络模型:
不同功能层次比较细致的划分。

OSI参考模型:物理层、数据链路层、网络层、会话层、表示层、应用层。
数据封包(发送者)————>数据拆包(接收者)应用层看数据属于哪个端口,然后数据解析。
TCP/IP参考模型:应用层(http)、传输层(TCP/UDP)、网际层(IP)、主机至网络层。
java基础基本都是在传输层和网际层操作的,暂且不考虑应用层。 IP:网络中的设备标识--不易记忆,可用主机名--本地回环地址:127.0.0.1 主机名:localhost
六、java方法获取本机和网络上主机的IP地址
1.首先导入net包
2.生成IP地址对象
3.解析IP地址对象,分为地址和主机名。一般网络上主机名不一定能解析出来。
import java.net.*; class IPDemo
{
public static void main(String[] args) throws Exception //异常必须处理或者抛出
{
InetAddress i=InetAddress.getLocalHost(); //获取本机IP地址对象
System.out.println(i.toString());//打印本机IP地址对象,转换成字符创打印 System.out.println("Address:"+i.getHostAddress());//获取本机IP地址
System.out.println("name:"+i.getHostName());//获取本机IP地址名称 //获取任意一台主机IP地址对象,如果这个地址和他对应的主机名没有在网络上
//我这个主机照这个地址没找到,没解析成功。IP地址对象的名称仍然是IP地址。
InetAddress ia=InetAddress.getByName("192.168.1.254");
//InetAddress ia=InetAddress.getByName("cxxy.seu.edu.cn");
//InetAddress ia=InetAddress.getByName("www.baidu.com");//只适合单一地址
//若返回的IP地址对象不唯一。那么往里面传主机名,返回的是IP地址对象数组,方法:static InetAddress[] getAllByName(String host)
System.out.println("Address:"+ia.getHostAddress());//获取本机IP地址
System.out.println("name:"+ia.getHostName());//获取本机IP地址名称 }
class IPDemo
七、用java获取本机IP对象的四种方法
本机IP对象对于在网络通信中十分重要。
InetAddress addr=InetAddress.getLocalHost();
InetAddress addr = InetAddress.getByName(null);
InetAddress.getByName("localhost");
InetAddress.getByName("127.0.0.1");
补充一种查看IP地址对象方法:
运行-->cmd-->ipconfig;里面有地址类型,子网掩码,默认网关,IP地址等信息。
如果是查看MAC的IP地址,可以按楼上的方法,cmd中输入“ipconfig/all”命令,Physical Address 物理地址,就是本机IP啦
网络编程概述和IP地址的获取方法的更多相关文章
- c/c++ 网络编程 UDP 改变IP地址
网络编程 UDP 改变IP地址 在程序里动态改变主机的IP地址 1,改变ipv4的地址 #include <stdio.h> #include <string.h> #incl ...
- 嵌入式linux的网络编程(1)--TCP/IP协议概述
嵌入式linux的网络编程(1)--TCP/IP协议概述 1.OSI参考模型及TCP/IP参考模型 通信协议用于协调不同网络设备之间的信息交换,它们建立了设备之间互相识别的信息机制.大家一定都听说过著 ...
- 【网络编程一】主机字节序与网络字节序以及ip地址转换函数
在计算机设计之初,对内存中数据的处理也有不同的方式,(低位数据存储在低位地址处或者高位数据存储在低位地址处),然而,在通信的过程中(ISO/OSI模型和TCP/IP四层模型中),数据被一步步封装(然后 ...
- Android网络编程概述
Android网络编程概述 首先,应该了解的几个问题: 1)Android平台网络相关API接口 a) java.net.*(标准Java接口) java.net.*提供与联网有关的类,包括流.数据包 ...
- 【liunx】使用xshell连接虚拟机上的CentOS 7,使用xhell连接本地虚拟机上的Ubuntu, 获取本地虚拟机中CentOS 7的IP地址,获取本地虚拟机中Ubuntu 的IP地址,Ubuntu开启22端口
注意,如果想用xshell去连接本地虚拟机中的linux系统,需要本地虚拟机中的系统是启动的才能连接!!!!! ============================================ ...
- linux ip地址自动获取,ip地址…
linux ip地址自动获取,ip地址手动设置(图文解释) 2011-04-19 16:19:31| 分类: 服务器(appache/n | 标签: |字号大中小 订阅 linux ip地址自动获取( ...
- 【转载】[基础知识]【网络编程】TCP/IP
转自http://mc.dfrobot.com.cn/forum.php?mod=viewthread&tid=27043 [基础知识][网络编程]TCP/IP iooops 胖友们楼主我又 ...
- 【网络编程】TCP/IP、UDP、网络概…
计算机刚刚发明出来的时候,两台计算机之间是无法通信的,为了使计算机之间能够进行数据的交流,制定了OSI(Open SystemInterconnection)开放系统互联模型,而TCP/IP(我们所使 ...
- CentOS 网络设置修改 指定IP地址 DNS 网关(转)
CentOS 网络设置修改 指定IP地址 DNS 网关(实测 笔记) 环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G) 系统版本:Centos-6.5-x86_64 ...
随机推荐
- Linux ssh修改文件
cd 你要修改的文件所在目录vi 你需要修改的文件名 这之后你就会进入vi编辑界面按"i"进入编辑模式正常修改就行按"ESC"进入命令模式,输入 ": ...
- SVN服务端的安装搭建(Linux)
在CentOS下安装 SVN 大多数 GNU/Linux 发行版系统自带了Subversion ,所以它很有可能已经安装在你的系统上了.可以使用下面命令检查是否安装了. svn --version 如 ...
- windows下忘记mysql超级管理员rootpassword的解决的方法
今天帮一个朋友找回了MYSQL的超级管理员ROOTpassword.開始输入命令的时候少打了个"点"害的折腾了几个小时.最终攻克了,写个教程,方便以后使用! 假设你是server是 ...
- nodejs 学习资料大全
1.blog学习篇 http://blog.fens.me/series-nodejs/ 从零开始nodejs系列文章
- Debian Epson L455 打印机
要使用打印机必须要在本机(或局域网其他机器)上安装打印服务,L455是网络打印机,需要IPP协议,而mDNS-scan和avahi-utils是用来发现网络打印机的服务,由于我是摸索着安装的,没太研究 ...
- 高度平衡树 -- AVL 树
Scheme 的表达, 优雅. #lang scheme ( define nil '() ) ( define ( root tree )( car tree ) ) ( define ( left ...
- FastDFS分布文件系统
FastDFS是为互联网应用量身定做的一套分布式文件存储系统,非常适合用来存储用户图片.视频.文档等文件.对于互联网应用,和其他分布式文件系统相比,优势非常明显.具体情况大家可以看相关的介绍文档,包括 ...
- 我在面试.NET/C#程序员时会提出的问题(转载)
转自:http://blog.zhaojie.me/2011/03/my-interview-questions-for-dotnet-programmers.html 说起来我也面试过相当数量的.N ...
- jqury 如何获取 kindeditor 中textarea 的值
获取文本内容,可是的创建时怎么也不能获取,利用FF的firebug查看到自己所写的内容在一个iframe中,于是想从iframe中获取文本,想要用 $(“ifame”).html();获取内容,可是依 ...
- ios -富文本和尺寸
/** * 计算文本的宽高 方法 2 * * @param str 需要计算的文本 * @param font 文本显示的字体 * @param maxSize 文本显示的范围 ...