Java中的网络编程

 Java中的网路编程主要是Java的Socket编程,属于JavaEE中的高级的部分,以下内容是对java网路编程的一个小结,代码都是经过编译调试的

  C/S程序应用:客户/服务器模式,如QQ客户端,客户端连到服务器上,一个C/S模式的应用必须有两套程序,一个是客户端的程序,一个是服务器程序。

  B/S程序应用:浏览器/服务器模式,如当下的各种网站都是B/S模式,所有的程序代码都在服务器上,用户通过浏览器去访问。

C/S程序分为两种:

基于TCP协议:Socket(套接字), 可靠的编程: A->B 如打电话先建立连接

基于UDP协议:不可靠,如短信功能。

如果编写一个TCP程序需要JAVA的两个包支持:

java.net.*: 主要提供网络支持;

|-ServerSocket类:服务器端程序

|-Socket类:客户端程序

java,io.*:传递信息流

客户端的两个功能:

1.建立Socket

2.接收输入的命令(输入流)->网络上传输的程序考的是字节流

以下是服务器端,客户端的两个事例程序,服务器端想客户端输出Hello word, 客户端接收并显示;

服务器程序:

 1 import java.io.*;
 2 import java.net.*;
 3 public class TCPSever {
 4
 5     /**
 6      * @param args
 7      * @throws IOException
 8      */
 9     public static void main(String[] args) throws IOException {
10         // TODO Auto-generated method stub
11         //使用ServerSocket
12         ServerSocket server = new ServerSocket(8000);
13
14         //每个用户在程序中就是一个Socket
15         Socket client = null;
16
17         //等待客户端连接
18         client = server.accept();
19
20         //像客户端打印信息
21         PrintWriter out = null;
22
23         //准被向客户端打印信息
24         out = new PrintWriter(client.getOutputStream());
25         out.println("Hello World");
26         out.close();
27         client.close();
28         server.close();
29     }
30
31 }

客户端程序:

 1 package Client;
 2 import java.io.*;
 3 import java.net.*;
 4
 5 public class TCPClient {
 6
 7     /**
 8      * @param args
 9      * @throws IOException
10      * @throws UnknownHostException
11      */
12     public static void main(String[] args) throws UnknownHostException, IOException {
13         // TODO Auto-generated method stub
14         //表示一个客户端的Socket
15         Socket client = null;
16
17         //表示一个客户端的输入信息
18         BufferedReader  buf = null;
19         client = new Socket("localhost",8000);
20         buf = new BufferedReader(new InputStreamReader(client.getInputStream()));
21         System.out.println(buf.readLine());
22         buf.close();
23         client.close();
24
25     }
26
27 }

在JDK中也准备了两个专门用于实现UDP的类

1.DatagramScoket

2.DatagramPacket

服务器端程序:

package Client;
import java.io.*;
import java.net.*;

public class TCPClient {

    /**
     * @param args
     * @throws IOException
     * @throws UnknownHostException
     */
    public static void main(String[] args) throws UnknownHostException, IOException {
        // TODO Auto-generated method stub
        //表示一个客户端的Socket
        Socket client = null;

        //表示一个客户端的输入信息
        BufferedReader  buf = null;
        client = new Socket("localhost",8000);
        buf = new BufferedReader(new InputStreamReader(client.getInputStream()));
        System.out.println(buf.readLine());
        buf.close();
        client.close();

    }

}

客户端程序:

 1 package Test4;
 2 import java.io.*;
 3 import java.net.*;
 4 public class UDPClient {
 5
 6     /**
 7      * @param args
 8      * @throws IOException
 9      */
10     public static void main(String[] args) throws IOException {
11         // TODO Auto-generated method stub
12         DatagramSocket ds = null;
13         DatagramPacket dp = null;
14
15         byte[] b = new byte[1024];
16
17         ds = new DatagramSocket(8000);
18         dp = new DatagramPacket(b,b.length);
19         ds.receive(dp);
20         String str = new String(dp.getData(),0,dp.getLength());
21         System.out.println(str);
22     }
23
24 }
时间: 2025-01-12 18:23:47

Java中的网络编程的相关文章

黑马程序员————java中的网络编程

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- java中的网络编程 一.网络编程概述:基于互联网的编程 就是用来实现网络互连的不同计算机上运行的程序间可以进行数据交换. 二.网络模型:OSI和TCP/IP 1.OSI(Open System Interconnection开放系统互连

第62节:探索Java中的网络编程技术

前言 感谢! 承蒙关照~ 探索Java中的网络编程技术 网络编程就是io技术和网络技术的结合,网络模型的定义,只要共用网络模型就可以两者连接.网络模型参考. 一座塔有七层,我们需要闯关. 第一层物理层->第二层数据链路层->第三层网络层->第四层传输层->第五层会话层->第六层表示层->第七层应用层. 物理层是主要定义物理设备标准,数据链路层是主要讲从物理层接收的数据进行MAC地址(网卡的地址)的封装与解封装.这层的数据较帧. 网络层是将从下层接收到的数据进行IP地址的

Java中的网络编程-2

Socket编程:(一般的网络编程) <1> 两个 JAVA 应用程序可通过一个双向的网络通信连接, 实现数据交换, 这个双向链路的一段称为一个 Socket. <2> Socket 通常用来实现 Client-Server 连接. <3> java.net 包中定义的两个类 Socket 和 ServerSocket(阻塞式), 分别用来实现双向连接的 Client 和 Server 端. <4> 建立连接时, 所需的寻址信息为远程计算机的 IP 地址和端

java中的网络编程基本回顾

网络编程基本概念,TCP/IP协议简介 网络基础知识 网络编程的目的就是指直接或间接地通过网络协议与其他计算机进行通讯.网络编程中有两个主要的问题,一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输.在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机.而TCP层则提供面向应用的可靠的或非可靠的数据传输机制,这是网络编程的主要对象,一般不需要关心IP层是如何处理数据的. 目前较为流行的网络编程

第78节:Java中的网络编程(上)

前言 网络编程涉及ip,端口,协议,tcp和udp的了解,和对socket通信的网络细节. 网络编程 OSI开放系统互连 网络编程指IO加网络 TCP/IP模型: 应用层 传输层 网际层 主机到网络层 OSI模型:(封装) 网络1封包->网络2拆包 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 网络通讯要素: ip地址 端口号 传输协议 主机名和ip地址是对应的,默认的主机名:localhost java.net 类 InetAddress java.lang.Object ->

第84节:Java中的网络编程(中)

实现客户端和服务端的通信: 客户端需要的操作,创建socket,明确地址和端口,进行键盘录入,获取需要的数据,然后将录入的数据发送给服务端,为socket输出流,然后进行读取服务端发送回来的大写数据,为socket读取流,最后进行客户端显示器的显示,进行读写操作,关闭资源. 网络编程TCP客户端 package com.dashucoding.tcp3; import java.io.BufferedReader; import java.io.BufferedWriter; import ja

Java中的网络编程-3

UDP:不可靠, 效率高, 数据报/非连接 Demo_1: Server 端: import java.io.IOException; import java.net.*; public class TestUDPServer { public static void main(String[] args) { byte buf[] = new byte[1024]; try { DatagramSocket ds = new DatagramSocket(5678); DatagramPack

读懂Java中的Socket编程(转)

Socket,又称为套接字,Socket是计算机网络通信的基本的技术之一.如今大多数基于网络的软件,如浏览器,即时通讯工具甚至是P2P下载都是基于Socket实现的.本文会介绍一下基于TCP/IP的Socket编程,并且如何写一个客户端/服务器程序. 餐前甜点 Unix的输入输出(IO)系统遵循Open-Read-Write-Close这样的操作范本.当一个用户进程进行IO操作之前,它需要调用Open来指定并获取待操作文件或设备读取或写入的权限.一旦IO操作对象被打开,那么这个用户进程可以对这个

Java学习之网络编程实例

转自:http://www.cnblogs.com/springcsc/archive/2009/12/03/1616413.html 多谢分享 网络编程 网络编程对于很多的初学者来说,都是很向往的一种编程技能,但是很多的初学者却因为很长一段时间无法进入网络编程的大门而放弃了对于该部分技术的学习. 在学习网络编程以前,很多初学者可能觉得网络编程是比较复杂的系统工程,需要了解很多和网络相关的基础知识,其实这些都不是很必需的.首先来问一个问题:你 会打手机吗?很多人可能说肯定会啊,不就是按按电话号码