`
cfeers
  • 浏览: 139865 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

java的基本语法(七)

    博客分类:
  • java
阅读更多

第十章  网络编程

1.      参考模型:

 

OSI 参考模型  应用层,表示层,会话层,传输层,网络层,数据链路层,物理层

TCP/IP参考模型:应用层  传输层   网络层  物理+数据链路层

 

2IP  提供了独一无二唯一的IP地址。

 

3TCP协议和UDP协议:

 

(1)TCP(transmission  control  protocol)   可靠的()

 是专门用于在不可靠的因特网上提供可靠的、端到端的字节流通信的协议,他是一种面向连接的协议,TCP连接是字节流而非报文流。    银行ATM

(2)UDP(user  data  protocol)           不可靠的()

UDP向应用程序提供了一种发送封装的原始IP数据报的方法、并且发送时无需建立连接,是一种不可靠的连接。             CS

 

4.Sockct  先启动Server  再启动Clinet

   两个Java应用程序可通过一个双向的网络通信连接实现数据交换,这个双向链路的一端称为一个Socket

   Socket 通常用来实现client-server 连接。

   Java.net 包中定义的两个类Socket ServerSocket,分别用来实现双向连接的clientserver端。

   建立连接时所需的寻址信息为原创计算机的IP地址和端口号(Port  number

TCP端口

UDP端口   每一个65536个端口

 

程序1TCPClient.java

import java.net.*;

import java.io.*;

public class TCPClient{

              public static void main(String[] args)throws  Exception{

Socket s = new Socket("127.0.0.1",6666);  //指定IP地址,连接到Server(本机),指向6666端口(Server)Client端口系统默认

                     OutputStream os = s.getOutputStream();

                     DataOutputStream dos = new DataOutputStream(os);

                     dos.writeUTF("Hello Server!");

                     dos.flush();

                     dos.close();

                     s.close();

              }

}

 

TCPServer.java

import java.net.*;

import java.io.*;

public class TCPServer{

              public static void main(String[] args)throws Exception{

                     ServerSocket ss = new ServerSocket(6666);       //监听6666端口

                     while(true){

  Socket s1 = ss.accept();  //Client建立一个连接,接受Client端,s1专门与Clients进行连接,

                      Thread.sleep(3000);//睡眠3秒钟

                       System.out.println("A client connection");//输出连接成功

                       DataInputStream dis = new DataInputStream(s1.getInputStream());

                       System.out.println(dis.readUTF());

                       dis.close();

                       s1.close();

                 }

              }

}

 

 

TCP Socket 通信模型

 

 

程序2:点对点聊天程序 TtServer.java

import java.io.*;

import java.net.*;

 

public class TServer{

       public static void main(String[] args){

              try{

                     ServerSocket server = null;

                     try{

                            server = new ServerSocket(8899);      

                     }catch(Exception e){e.printStackTrace();}

                     Socket socket = null;

                     try{

                            socket = server.accept();      

                     }catch(Exception e){e.printStackTrace();}

                     String line;

                     BufferedReader is = new BufferedReader(new InputStreamReader(socket.getInputStream()));

                     PrintWriter os = new PrintWriter(socket.getOutputStream());

                     BufferedReader sin = new BufferedReader(new InputStreamReader(System.in));

                     System.out.println("Client:" + is.readLine());

                     line = sin.readLine();

                     while(!line.equals("bye")){

                            os.println(line);      

                            os.flush();

                            System.out.println("服务器端(Server):" + line);

                            System.out.println("客户端(Client):" + is.readLine());

                            line = sin.readLine();

                     }

                     is.close();

                     os.close();

                     socket.close();

                     server.close();

              }catch(Exception e){System.out.println("出错了,你没有用Bye退出"+ e);}

       }    

}

 

 

 

 

 

 

TClient.java

import java.io.*;

import java.net.*;

 

public class TClient{

       public static void main(String[] args){

              try{

                     Socket socket = new Socket("127.0.0.1",8899);

                     BufferedReader sin = new BufferedReader(new InputStreamReader(System.in));

                     PrintWriter os = new PrintWriter(socket.getOutputStream());

                            BufferedReader is = new BufferedReader(new InputStreamReader(socket.getInputStream()));

                     String readline;

                   readline = sin.readLine();

                     while(!readline.equals("bye")){

                        os.println(readline);

                        os.flush();

                        System.out.println("客户端(Client):" + readline);

                        System.out.println("服务器端(Server):" + is.readLine());

                        readline = sin.readLine();

                     }

                     os.close();

                     is.close();

                     socket.close();                    

              }catch(Exception e){e.printStackTrace();}

       }    

}

 

UDP :不可靠的,效率高,数据报/非连接    (音频,视频)

DatagramPacket 数据报包

DatagramSocket: 用来发送和接收数据报包的套接字

------------------------------------------------------------------------------------------------------------------

 

例如:TestUDPClient.java

 

import java.net.*;

 

public class TestUDPClient{

       public static void main(String[] args)throws Exception{

 byte[] buf = (new String("Hello")).getBytes();  //new一个字符串”Hello“,返回baye类型,把一个字符串解析为一个字节数组

        

 DatagramPacket dp = new DatagramPacket(buf,buf.length,

                  new InetSocketAddress("127.0.0.1",5678));    //通过buf字节数组,把所有内容、//发出去,InetSocketAddress继承于 SocketAddress(包含IP端口的地址)(多态)

                                                    // 发送到 127.0.0.15678端口              

         DatagramSocket ds = new DatagramSocket(9999); //我用99995678发送数据

         ds.send(dp); //发送数据报包,对方收到了!

         ds.close(); //关闭

       }

}

 

 

import java.net.*;

public class TestUDPServer{

       public static void main(String[] args) throws Exception{

              byte buf[] = new byte[1024];       //定义一个byte数组,内存分配1024字节空间

DatagramPacket dp = new DatagramPacket(buf, buf.length); //定义一个数据报包,接受UDP的数据,实际是存在buf里面,占用整个buf空间

              DatagramSocket ds = new DatagramSocket(5678);  //占用udp5678端口

              while(true){

ds.receive(dp);    //开始收数据,把包袱传进来,只要有人发数据,把数据仍包袱里面。(阻塞式的方法)

System.out.println(new String(buf,0,dp.getLength()));       //String的构造方法,打印包袱里面所收的数据,可以知道到底收了多少个数据;从0开始到长度,打印出来。

              }

       }    

}

分享到:
评论

相关推荐

    Java基本语法大全(全).ppt

    Java基本语法大全

    Java的概述与基本语法规则

    二、Java基本语法 1. **变量**:Java中的变量必须先声明后使用,有八种基本数据类型(byte, short, int, long, float, double, char, boolean)和引用数据类型(对象、数组、接口)。 2. **数据类型转换**:Java支持...

    Java基本语法编程练习.doc

    Java 基本语法编程练习 Java 是一种广泛使用的高级编程语言,具有平台独立性、对象oriented 和大规模的标准库等特点。Java 基本语法编程练习是学习 Java 语言的基础,以下是 Java 基本语法编程练习的知识点总结: ...

    Java基本语法.doc

    Java基本语法

    JAVA基本语法及关键字.chm

    JAVA的基本语法及48个关键字! chm文档! 找了好久都找不到,只好自己做一个了! 分享一下...

    java基本语法大全

    java基本语法大全 非常好用,详细地介绍了java语法特点,还有丰富的实例

    Java基本语法.ppt

    Java基本语法.ppt 让读者对数据类型、表达式等Java基本语法内容有一个了解,这些内容是任何一门程序设计语言都必须包含的部分,可为程序设计打基础

    Java基本语法.pdf

    根据给定文件的信息,我们可以深入探讨Java的基本语法和核心概念,包括程序结构、注释、...以上知识点覆盖了Java基本语法的核心要素,包括程序结构、注释、数据类型以及变量和常量的使用,为初学者提供了坚实的基础。

    JAVA语法大全(基本语法)

    JAVA语法大全(基本语法) JAVA语法大全是指JAVA的基本语法,包括关键字、词法规则、数据类型、常量与变量、运算符和表达式、语句、数组和字符串等方面的知识点。 一、词法规则 词法规则是JAVA程序的基本组成部分...

    Java中的基本语法部分思维导图

    JavaSE阶段,基本语法部分的思维导图,学习Java对于新人来说本来就比较难,我在这里自己把基本语法部分的知识点都进行了一个串联,做成了一个思维导图,可供初学者以及备考学生进行参考

    JAVA基础语法总结

    这篇总结将深入探讨Java的基础语法,帮助初学者理解并掌握Java编程的核心概念。 **1. Java程序结构** Java程序由类(Class)组成,每个类都包含方法(Method)。程序执行始于main方法。例如: ```java public class...

    实验二:Java语法基础

    本_experiment_总结了 Java 的一些基本的语法知识,包括变量和常量的使用、运算符与表达式的使用、选择、循环、分支语句的使用等。实验内容包括输入一个学生的成绩,给出相应的等级、编写一个程序从键盘输入 5 个...

    Java的基本语法的笔记

    Java的基本语法的笔记

    java基础语法 汇总

    ### Java基础语法汇总 本文将基于给定的文件信息,对Java的基础语法进行一次全面而深入的解析。Java作为一种广泛使用的编程语言,在软件开发、Web应用、移动应用等多个领域都有着重要的地位。对于初学者而言,掌握...

    01.Java基本语法

    01.Java基本语法

    java基本语法ppt 下载

    总的来说,Java基本语法的学习对于初学者来说至关重要,因为它提供了编写Java程序的基础。理解这些概念后,开发者能够创建简单的程序,并逐渐进阶到更复杂的面向对象编程。通过不断的实践和学习,可以掌握Java编程的...

    Java 基本语法

    以下是Java基本语法的一些核心知识点: 1. **数据类型**:Java有两大类数据类型,即基本数据类型和引用数据类型。基本数据类型包括整型(byte, short, int, long)、浮点型(float, double)、字符型(char)和布尔...

    java基本语法.ppt

    Java 基本语法 Java 程序设计的基本语法是学习 Java 的基础,这部分内容涵盖了 Java 的变量、常量、运算符、控制语句等基础知识。 一、变量 在 Java 中,变量是存储数据的一个基本单元房间,变量名是房间的名字,...

    JAVA基础语法,最基本的语法

    本人属于初学者,通过老师的讲解,做出来的自身对JAVA基本语法的理解

Global site tag (gtag.js) - Google Analytics