java初级笔记_Socket

原创 2015年07月11日 02:11:46

------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! ------- 



     一、Socket相关概念

        A:计算机网络与网络编程

计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。

网络编程就是用来实现网络互连的不同计算机上运行的程序间可以进行数据交换。

        B:网络模型

计算机网络之间以何种规则进行通信,就是网络模型研究问题。

网络模型一般是指

OSI(Open System Interconnection开放系统互连)参考模型

TCP/IP参考模型

两种主要的网络模型

        C:网络三要素

IP地址:网络中设备的标识,不易记忆,可用主机名。

端口号:用于标识进程的逻辑地址,不同进程的标识。

传输协议:通讯的规则,常见协议:TCP,UDP。

1、IP地址

要想让网络中的计算机能够互相通信,必须为每台计算机指定一个标识号,通过这个标识号来指定要接受数据的计算机和识别发送的计算机,在TCP/IP协议中,这个标识号就是IP地址。

IP地址简介:

A:所谓IP地址就是给每个连接在Internet上的主机分配的一个32bit地址。按照TCP/IP规定,IP地址用 二进制来表示,每个IP地址长32bit,比特换算成字节,就是4个字节。例如一个采用二进制形式的IP 地址是“00001010000000000000000000000001”,这么长的地址,人们处理起来也太费劲了。为了 方便人们的使用,IP地址经常被写成十进制的形式,中间使用符号“.”分开不同的字节。于是,上面的 IP地址可以表示为“10.0.0.1”。IP地址的这种表示法叫做“点分十进制表示法”,这显然比1和0容易记忆 得多。


B:IP地址的组成
IP地址 = 网络号码+主机地址


A类IP地址:第一段号码为网络号码,剩下的三段号码为本地计算机的号码
B类IP地址:前二段号码为网络号码,剩下的二段号码为本地计算机的号码
C类IP地址:前三段号码为网络号码,剩下的一段号码为本地计算机的号码

特殊地址:
127.0.0.1 回环地址,可用于测试本机的网络是否有问题. ping 127.0.0.1   

DOS命令 ipconfig:查看本机IP地址
xxx.xxx.xxx.0 网络地址
xxx.xxx.xxx.255 广播地址

A类 1.0.0.1---127.255.255.254 (1)10.X.X.X是私有地址(私有地址就是在互联网上不使用,而被用在 局域网络中的地址) (2)127.X.X.X是保留地址,用做循环测试用的。
B类 128.0.0.1---191.255.255.254 172.16.0.0---172.31.255.255是私有地址。169.254.X.X是保留 地址。
C类 192.0.0.1---223.255.255.254 192.168.X.X是私有地址
D类 224.0.0.1---239.255.255.254
E类 240.0.0.1---247.255.255.254

2、端口号

物理端口 网卡口

逻辑端口 我们指的就是逻辑端口

每个网络程序都会至少有一个逻辑端口

用于标识进程的逻辑地址,不同进程的标识

有效端口:0~65535,其中0~1024系统使用或保留端口

通过360可以查看端口号

3、协议

UDP:

将数据源和目的封装到数据包中,不需要建立连接;每个数据报的大小在限制在64k;因无连接,是 不可靠协议;不需要建立连接,速度快。

TCP:

建立连接,形成传输数据的通道;在连接中进行大数据量传输;通过三次握手完成连接,是可靠协 议;必须建立连接,效率会稍低。

        D:Socket

在Internet上的主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket, 并绑定到一个端口上,不同的端口对应于不同的服务。

Socket就是为网络编程提供的一种机制,又叫套接字编程。

通信的两端都有Socket。

网络通信其实就是Socket间的通信。

数据在两个Socket间通过IO传输。


     二、具体类介绍

A:InetAddress类

是对IP地址的抽象

无构造方法

主要方法

public static InetAddress getLocalHost() throws UnknownHostException  获取本地主机

public static InetAddress getByName(String host) throws UnknownHostException 依据主机名获取主机

public String getHostName()

public String getHostAddress()

B:UDP网络编程操作

DatagramSocket数据套接字与DatagramPacket数据包

完成步骤:

建立发送端,接收端。

创建数据

建立数据包。

调用Socket的发送接收方法。

关闭Socket。

发送端与接收端是两个独立的运行程序。

UDP发送端固定格式代码:

UDP接收端固定格式代码:

C:TCP网络编程操作

Socket客户端和ServerSocket服务器端

完成步骤:

建立客户端和服务器端。

建立连接后,通过Socket中的IO流(Socket流)进行数据的传输。

(如果是服务器端,则需要添加一步操作:通过Socket服务获取Sokect再获取其当中的IO流)

关闭socket。

同样,客户端与服务器端是两个独立的应用程序。

注意:

服务器端开启后等待客户端访问,不应关闭。

一个服务器端对应多个客户端。

不同客户端间通信可以通过服务器端中转信息。

TCP服务器端固定格式代码

TCP客户端固定格式代码

其他方法及注意事项:

客户端连接上服务端,两端都在等待,没有任何数据传输。

通过例程分析:因为read方法或者readLine方法是阻塞式。

解决办法:

自定义结束标记

使用shutdownInput,shutdownOutput方法。



------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

java socket编程 初级 服务器端和客户端 通信

package server; import java.io.DataOutputStream; import java.io.IOException; import java.net.Server...

Java Socket网络编程初级入门

事实上网络编程简单的理解就是两台计算机相互通讯数据而已,对于程序员而言,去掌握一种编程接口并使用一种编程模型相对就会显得简单的多了,Java SDK提供一些相对简单的Api来完成这些工作。Socket...
  • j315321
  • j315321
  • 2012年08月21日 10:16
  • 235

Java Socket网络编程初级入门

  • 2010年08月15日 16:46
  • 39KB
  • 下载

上机题目(初级)- Java网络操作-Socket实现客户端和服务器端通信二(Java)

上一节实现了客户端像服务器端发送请求,本节将实现服务器端向客户端回传信息,实现原理很简单,在原来的基础上,在服务器端实现输出流,在客户端实现输入流即可,具体代码如下:服务器端:package com....

上机题目(初级)- Java网络操作-Socket实现客户端和服务器端通信(Java)

很多初学者对于java网络通信不太熟悉,对相关概念也不太明白,这里我们主要实现一下socket通信,socket通信在java中应用十分广泛,例如QQ和MSN等都是基于socket通信的,什么是soc...

java初级程序员知识笔记

  • 2014年10月18日 18:05
  • 227KB
  • 下载

java学习笔记--初级

  • 2009年01月12日 11:13
  • 81KB
  • 下载

JAVA学习笔记(初级)三

static修饰符与final修饰符 Java 程序运行时的内存结构分成:方法区、栈内存、堆内存、本地方法栈几种。...
  • fatever
  • fatever
  • 2017年04月26日 11:36
  • 82

女生的java初级课堂笔记

  • 2008年05月15日 11:21
  • 252KB
  • 下载

Java初级学习笔记

  • 2013年08月23日 11:22
  • 21KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java初级笔记_Socket
举报原因:
原因补充:

(最多只允许输入30个字)