首页 > 编程语言 >java网络编程

java网络编程

时间:2023-12-20 16:13:42浏览次数:31  
标签:java Socket 编程 bys 网络 IOException new import

一、网络编程入门

1、网络编程概述

 

2、网络编程的三要素

 

3、IP地址 

 InetAddress类

示例:

 

4、端口

5、协议

 

 

二、UDP通信程序

1、UDP通信原理

2、UDP发送数据

 示例:

package com.itbianma01;

import java.io.IOException;
import java.net.*;

public class Demo {
    public static void main(String[] args) throws IOException {
        //创建发送端的Socket对象
        DatagramSocket ds = new DatagramSocket();
        //创建数据,并将数据打包
        byte[] bys = "hello,我来了".getBytes();
        DatagramPacket db = new DatagramPacket(bys, bys.length, InetAddress.getByName("192.168.6.52"), 10086);
        //发送数据
        ds.send(db);
        //关闭发送端
        ds.close();
    }
}

 

3、UDP接收数据

示例:

package com.itbianma01;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;

public class ReceiveDemo {
    public static void main(String[] args) throws IOException {
        //创建接收端的Socket对象
        //DatagramSocket(int port) 构造函数将绑定到本地主机上的指定端口
        DatagramSocket ds = new DatagramSocket(10086);
        //创建一个数据包,用于接收数据
        byte[] bys = new byte[1024];
        DatagramPacket dp = new DatagramPacket(bys, bys.length);
        //调用DatagramSocket对象的方法接收数据
        ds.receive(dp);
        //解析数据包,并把数据在控制台显示
        byte[] datas = dp.getData();
        int len=dp.getLength();
        String dataString = new String(datas,0,len);
        System.out.println("数据是:" + dataString);
        ds.close();
    }
}

 

三、TCP通信程序

1、TCP通信原理

 

2、TCP发送数据

示例:

package com.itbianma02;

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

public class ClientDemo {
    public static void main(String[] args) throws IOException {
        //创建客户端的Socket对象
        Socket s = new Socket("192.168.6.52", 10000);
        //获取输出流,写数据
        OutputStream os= s.getOutputStream();
        os.write("hello,我来了".getBytes());
        s.close();
    }
}

 

3、TCP接收数据 

示例: 

package com.itbianma02;

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

public class ServerDemo {
    public static void main(String[] args) throws IOException {
        //创建服务端的Socket对象
        ServerSocket ss = new ServerSocket(10001);
        //接收数据
        Socket s = ss.accept();
        //获取输入流,读数据,并把数据显示在控制台
        InputStream is = s.getInputStream();
        byte[] bys = new byte[1024];
        int len = is.read(bys);
        String data = new String(bys, 0, len);
        System.out.println("数据是:" + data);
        //释放资源
        s.close();
        ss.close();
    }
}

 

四、TCP通信实例

 

 客户端:

 

服务端:

 

标签:java,Socket,编程,bys,网络,IOException,new,import
From: https://www.cnblogs.com/qtiger/p/17916702.html

相关文章

  • Java登陆第二十六天——Http
    Http是一种基于TCP/IP的协议。相同的,它有客户端和服务端。Http的交互方式客户端向服务端发送的总是请求;服务端向客户端返回的总是响应Http的版本HTTP/0.9:初代目单行HTTP,只能返回一个HTML页面HTTP/1.0:二代目每次请求和响应都会建立和关闭一次连接(短链接)新增了三种......
  • Java IO 模型
    IO是个啥IO,是input/output的缩写,表面意思是输入/输出,描述计算机中数据流动的过程,实际上就是CPU、内存和外部进行数据交换的过程举个例子,某个进程要获取到数据的过程如下:1.请求:进程请求外部数据2.准备:缓冲区准备数据,通过磁盘或者网络读取数据到内核空的缓冲区3.拷贝:将数......
  • Java中“100==100”为true,而"1000==1000"为false?
    前言今天跟大家聊一个有趣的话题,在Java中两个Integer对象做比较时,会产生意想不到的结果。例如:Integera=100;Integerb=100;System.out.println(a==b);其运行结果是:true。而如果改成下面这样:Integera=1000;Integerb=1000;System.out.println(a==b);其运行......
  • docker网络模式
    Docker网络我们使用容器,不单是运行单机程序,当然是需要运行网络服务在容器中,那么如何配置docker的容器网络,基础网络配置,网桥配置,端口映射,还是很重要。docker网络功能docker的网络功能就是利用Linux的networknamespace,networkbridge,虚拟网络设备实现的。默认情况下,docker安装......
  • docker存储与网络
    1.配置容器端口映射我们使用容器,不单是运行单机程序,当然是需要运行网络服务在容器中,那么如何配置docker的容器网络,基础网络配置,网桥配置,端口映射,还是很重要。这里的学习思路,是先学习基本的容器网络操作命令后面环节深入学习docker网络配置。容器里运行web服务,是基本需求,想要......
  • 实验7—文件应用编程
    4、实验任务4源代码1#include<stdio.h>23intmain(){4FILE*fp;5fp=fopen("d:\\data4.txt","r");6if(fp==NULL){7printf("failtoopenfile.\n");8return1;9}1011cha......
  • 秦疆的Java课程笔记:79 异常 自定义异常及经验小结
    使用Java内置的异常类可以描述在编程时出现的大部分异常情况。除此之外,用户还可以自定义异常。(秦疆老师:用的不多,但开源框架或者大型系统会用到。)用户自定义异常类,只需要继承Exception类即可。自定义异常类的步骤:创建自定义异常类在方法中通过throw关键字抛出异常对象......
  • 网络入门初学第二期
    不知不觉就把IA的基础学了个大概,经过上一期的学习,感觉对于网络设备的工作原理还是需要一个简单的总结下面我们会根据设备内部的工作机制进线学习首先我们上一期也谈到了交换机的工作原理:接受到数据帧,查看目标MAC,对应的端口转发就ok了不过上期讲的比较模糊,这期我们就从PC如何......
  • Java学习之apache poi操作Excel文件
    创建Java项目,然后加入Maven依赖如下:读取指定的Excel文件写入既存的Excel文件 创建新的Excel,添加文件内容......
  • 《Python网络爬虫:从入门到实战》
    ......