网络编程概述和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程序设计——取消一个线程(第十二章)
12.7 取消一个线程 有时,想让一个线程能够要求还有一个线程终止,就像给它发送一个信号一样. 线程有方法能够做到这一点,与与信号处理一样.线程能够被要求终止时改变其行为. pthread_ca ...
- java中获取文件路径的几种方式
http://xyzroundo.iteye.com/blog/1116159关于绝对路径和相对路径: 绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如:C:xyz es ...
- java检测http请求的ip地址 Java问题通用解决代码
以后再用到的话,至少能起个参考作用 java实现,struts2的Action中,依赖HttpServletRequest package net.dookoo.web.action; i ...
- Socket 异步通信示例
这个项目是一个控制台应用程序: 服务器端: using System; using System.Net; using System.Net.Sockets; using System.Text; u ...
- Java编程手冊-Collection框架(上)
该文章所讲内容基本涵盖了Collection里面的全部东西,尽管基于jdk 1.5的.可是思路非常清晰 1.引言 1.1 Collection框架的介绍 尽管我们能够使用数组去存储具有同样类型的元素集 ...
- sqlplus登入和plsql登入的差别
以下是两种登入方式的截图.用sqlplus登入须要输入主机字: 假设是用本机的SQL*Plus连接本机的数据库.则"主机字符串"能够为空. 假设是从远程连接xp的oracle数据库 ...
- PHP设置会话(Session)超时过期时间实现登录时间限制
最近某个PHP项目用到了限制登录时间的功能,比如用户登录系统60分钟后如果没有操作就自动退出,我搜索了网络收集了有以下方法可供参考. 第一种方法即设置php.ini配置文件,设置session.gc_ ...
- RTM-DSP项目总结
1. 项目介绍 在NINJA设备上支持RTM-ISDN卡 RTM-ISDN卡硬件组成 主要组成单元 C6415: DSP PEB383(上图中的PEX8112改为PEB383,由于后者具有NT功能) ...
- ANDROID L——Material Design具体解释(主题和布局)
转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990).谢谢支持! Android L: Google已经确认Android L就是Android Lolli ...
- php 如何把中文写入json中 当json文件中还显示的是中文
/*** * 更新版本 */ function showupversionsub(){ #接受post 过来的数据 $app_type=$_POST['aap_type']; if($app_type ...