网络编程概述

文章介绍了网络编程的目的,主要问题包括主机定位和数据传输。网络通信涉及IP地址、端口号和通信协议,特别是TCP/IP协议簇的重要角色。TCP网络通信强调了可靠的连接建立与释放,以及Socket作为通信端点的应用。给出了服务器端和客户端的Socket通信案例,展示数据传输过程。
摘要由CSDN通过智能技术生成

一, 网络编程的目的

直接或间接地通过网络协议与其它计算机进行通讯,实现资源的共享

二,网络编程中面临的主要问题

1. 如何准确地定位网络上一台或多台主机
2. 找到主机后如何可靠高效地进行数据传输

三,网络通信要素

通讯要素 1 IP地址 和 端口号 端口号与 IP 地址的组合得出一个网络套接字 .

四,通信规则

计算机网络中实现通信必须有一些约定 , 即通信协议 . 对传输频率 , 数据格式 , 传输步骤 , 出错控制等设计的标准 .
协议模型差异化
 数据封装和数据拆分
TCP/IP协议簇
TCP/IP 协议簇是 Internet 的基础 , 也是当今最流行的组网形式 .TCP/IP 是一组协议的代名词 , 包括许多别的协议 ,
组成了 TCP/IP 协议簇 . 其中比较重要的有 PPP 协议、 IP 协议、 TCP 协议、 UDP 协议、 FTP 协议、 DNS 协议、
SMTP 协议等

 五,TCP网络通信

1. 使用 TCP 协议前 , 须先建立 TCP 连接 , 形成传输数据通道
2. 传输前 , 采用 " 三次握手 " 方式 , 是可靠的
3. TCP 协议进行通信的两个应用进程 : 客户端、服务端
4. 在连接中可进行大数据量的传输
5. 传输完毕 , 需释放已建立的连接 , 效率低 ( 释放连接需要四次挥手 )

六,Socket介绍

·Socket介绍 
1. 利用套接字 (Socket) 开发网络应用程序早已被广泛的采用 , 以至于成为事实上的标准
2. 通信的两端都要有 Socket, 是两台机器间通信的端点
3. 网络通信其实就是 Socket 间的通信
4. Socket 允许程序把网络连接当成一个流 , 数据在两个 Socket 间通过 IO 传输
5. 一般主动发起通信的应用程序属客户端 , 等待通信请求的为服务端
·Socket类

 ·ServerSocket类

 七,案例

//服务器端
public class Text {

    public static void main(String[] args) throws IOException {
        //创建服务器端套接字对象
        ServerSocket serverSocket = new ServerSocket(5555);
        System.out.println("服务器端已启动-等待客服端链接");
        
        //等待客户端发送数据
        Socket accept = serverSocket.accept();
        System.out.println("客服端链接成功-等待接受数据");
        
        //从管道中获取数据(管道)输入流
        InputStream in = accept.getInputStream();
        System.out.println("读取接受的数据");
        
        //用数组保存数据
        //设置缓冲区从输入流中读取数据
        byte[] buff=new byte[1024];
        
        //传过来的数据的字节码长度
        int length=in.read(buff);
        
        //从0-length长度字节码读取的内容
        String string = new String(buff,0,length);
        System.out.println("接受客户端发送的数据为:"+string);
        
        //关闭通道
        accept.close();
        serverSocket.close();
    }

}

//客户器端
public class Text1 {

    public static void main(String[] args) throws UnknownHostException, IOException {
        //创建客户端套接字
        Socket socket = new Socket("127.0.0.1",5555);
        //获取输出流,(通道)
        OutputStream out = socket.getOutputStream();
        //向通道中写入数据
        String msg="Hello 屈小鸟";//要发送的信息
        //写
        out.write(msg.getBytes());//msg.getBytes()这是获取写入数据的字节码长度
        //关流
        out.close();
        socket.close();
                
    }

}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值