java笔记(七):网络编程

来源:互联网 发布:js鼠标悬停事件 编辑:程序博客网 时间:2024/05/29 13:31

java.net 包中提供了两种常见的网络协议的支持:

  • TCP:Transmission Control Protocol 传输控制协议,面向连接的,是一种可靠的、基于字节流的传输层通信协议
  • UDP:User Datagram Protocol 用户数据报协议,是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务

Socket

Socket使用TCP提供了两台计算机之间的通信机制。
Socket建立tcp的连接过程如下:

  1. 服务器实例化一个 ServerSocket 对象
  2. 服务器调用 ServerSocket 类的 accept() 方法
  3. 一个客户端实例化一个 Socket 对象,指定服务器名称和端口号来请求连接
  4. Socket 类的构造函数试图将客户端连接到指定的服务器和端口号
  5. 在服务器端,accept() 方法返回服务器上一个新的 socket 引用,该 socket 连接到客户端的 socket

由于tcp是双向协议,因此服务器和客户端可以同时发送数据。

ServerSocket

ServerSocket是服务器端建立用于监听客户端的类。
通过绑定接口,实例化ServerSocket,并调用accept()方法,实现对客户端的监听。

Socket

Socket 类代表客户端和服务器都用来互相沟通的套接字。
客户端通过实例化来获取一个 Socket 对象 ,而服务器则通过 accept()方法的返回值获得一个 Socket 对象。

实例:

//server端:ServerSocket ss = null;try{    ss = new ServerSocket(10002);    while(true){        Socket s = ss.accept();        BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));        System.out.println("from client:"+br.readLine());    }} catch(IOException e){    e.printStackTrace();}//client端:Socket s = null;try{    s = new Socket("127.0.0.1", 10002);    PrintWriter ps = new PrintWriter(new BufferedWriter(new OutputStreamWriter(s.getOutputStream())));    ps.println("hello server");    ps.flush();} catch (UnknownHostException e) {    e.printStackTrace();} catch (IOException e) {    e.printStackTrace();}
原创粉丝点击