J2SE之网络编程

一、网络基础

  网络通信协议:对速率、传输代码、代码结构、传输控制步骤、出错控制等制定标准。

  网络通信接口:硬件装置:实现节点之间的信息传输。

         软件装置:规定双方进行通信的协议。

    软件开发成员应掌握右边四层模型。

二、TCP/IP协议

  IP协议:最大贡献——提供了独一无二的IP地址。

    -|IPV4

      子网掩码

      网关

    -|IPV6

      

  TCP:一种面向连接的协议。可靠的、端到端的字节流通信的协议。字节流。

     即一定可以将数据传输到位。数据包按顺序到达,不会乱序。如电话。

     效率较UDP低

     

  UDP:一种发送封装的原始IP数据报的方法、并且发送时无需建立连接。是一种不可靠的连接。

     只负责将数据发出,不管对方是否收到。如电报。

  TCP可靠,速度慢。

  UDP不可靠,速度快,效率高。

三、SOCKET

  1、用来实现client-server连接

  2、java.net包中定义的两个类socket和serversocket分别用来实现双向连接的client和server端。

  3、建立连接时所需的寻址信息为远程计算机的IP地址和端口号(port)(开发时端口号用1024以后的)

    -|TCP端口与UDP端口不同

      每一个各有65536个端口

import java.io.DataInputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;


public class TCPServer {
    public static void main(String args[]) throws IOException{
        ServerSocket ss = new ServerSocket(6666);
        
        while(true){
        Socket s = ss.accept();    
        DataInputStream dis = new DataInputStream(s.getInputStream());
        
        System.out.println(dis.readUTF());
        
        dis.close();
        s.close();
        }
        
        
    }
}






















import java.io.DataOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;


public class TCPClient {
    public static void main(String args[]) throws UnknownHostException, IOException{
        Socket s = new Socket("127.0.0.1",6666);
        
        OutputStream os = s.getOutputStream();
        DataOutputStream dos = new DataOutputStream(os);
        
        dos.writeUTF("hello gay!");
        dos.flush();
        dos.close();
        s.close();
        
    }
}
原文地址:https://www.cnblogs.com/elleniou/p/2614228.html