javasocket基于udp/ip协议

     2022-03-16     464

关键词:

Java  socket 基于UDP/IP协议应用

服务器端:  1、创建DatagramSocket,指定端口号

                            2、创建DatagramPacket

                            3、接收客户端发送的数据

                            4、读取数据

客户端:        

1、  定义发送信息: 服务器的IP 端口号  发送的内容

2、  创建DatagramPacket,包含将要发送的信息

3、  创建DatagramSocket

4、  发送数据

 

服务器端

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

/**
 *
服务器端,实现基于UDP的用户登录
 * Created by Jim Calark on 2017/3/19.
 */
public class UDPServer {
    public static void main(String[] args)  throws  SocketException , IOException{
        //1、创建服务器端DatagramSocket,指定端口
        DatagramSocket datagramSocket = new DatagramSocket(8800);
        //2、创建数据报,用于接受客户端发送的数据
        byte [] data = new byte[ 1024];//创建字节数组,指定接受的数据报的大小
        DatagramPacket datagramPacket = new DatagramPacket(data,data.length);
        //3、接收客户端发送的数据
        System.out.println("服务器已经开启,等待客户端的连接");
        //此方法在接收到数据之前会一直阻塞
        datagramSocket.receive(datagramPacket);
        //4、读取客户端发送的数据
        //参数: data 要转换的数组 0 从数组的下标0 开始  datagramPacket.getLength() 长度为接收到的长度
        String info = new String(data,0,datagramPacket.getLength());
        System.out.println("这里是服务器,客户端发来的消息:--"+info);

        /**
         * 
向客户端进行响应
         */
       
//1、定义客户端的地址、端口号、数据
        //获取客户端 ip地址
        InetAddress inetAddress = datagramPacket.getAddress();
        //获取客户端端口号
        int port = datagramPacket.getPort();
        //将要响应的内容保存到byte数组中
        byte [] data2 = "欢迎您!".getBytes();
        //2创建数据报,包含响应的数据信息
        DatagramPacket datagramPacket12 = new DatagramPacket(data2,data2.length,inetAddress,port);
        //3、响应客户端
       datagramSocket.send(datagramPacket12);
       //4、关闭资源
       datagramSocket.close();

    }
}

 

                           

 

客户端

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

/**UDP 客户端
 * Created by Jim Calark on 2017/3/19.
 */
public class UDPClient {
    public static void main(String[] args) throws UnknownHostException  , SocketException,IOException{
        //1、定义服务器地址、端口号、数据
        InetAddress inetAddress = InetAddress.getByName("localhost");
        int port = 8800;
        byte [] data = "用户名: 最帅的;密码: 123".getBytes();
        //2、创建数据报,包含发送的信息
        DatagramPacket datagramPacket = new DatagramPacket(data,data.length,inetAddress,port);
        //3、创建DatagramSocket对象
        DatagramSocket datagramSocket = new DatagramSocket();
        //4、向服务器端发送数据报
        datagramSocket.send(datagramPacket);

        /**
         *
客户端接收服务器端响应信息
         *
         */
       
//1、创建数据报,用于接收服务器端响应数据,数据保存到字节数组中
        byte [] data2 = new byte[1024];
        DatagramPacket datagramPacket1 =new DatagramPacket(data2 ,data2.length);
        //2、接收服务器响应的数据
        datagramSocket.receive(datagramPacket1);
        //3、读取数据
        String reply = new String(data2,0,datagramPacket1.getLength());
        System.out.println("这里是客户端,服务器端发来的消息:--"+ reply);
        //4、关闭资源
        datagramSocket.close();


    }
}

 

















































































javasocket基于tcp/ip协议

Javasocket基于TCP/IP协议应用多线程服务器原理:1、         服务器端创建serversocket并绑定要监听的端口号,循环调用serversoket的accept()方法,等待客户端的连接请求2、       &... 查看详情

javasocket通信

7.6.1Socket学习网络基础准备7.6.2基于TCP协议的Socket通信(1)7.6.3基于TCP协议的Socket通信(2)7.6.4基于UDP协议的Socket通信  查看详情

javasocket底层是怎样基于tcp/ip实现的???

首先必须明确:TCP/IP模型中有四层结构:     应用层(ApplicationLayer)、传输层(Transport Layer)、网络层(InternetLayer )、链路层(LinkLayer) 其中Ip协议(InternetProtocol)是位于网络层的,TCP协议时位... 查看详情

javasocket底层是怎样基于tcp/ip实现的

  首先必须明确:TCP/IP模型中有四层结构:应用层(ApplicationLayer)、传输层(TransportLayer)、网络层(InternetLayer)、链路层(LinkLayer)其中Ip协议(InternetProtocol)是位于网络层的,TCP协议时位于传输层的。通过Ip协议可以使可... 查看详情

tcp与udp的区别

...TCP协议全称是传输控制协议,是一种面向连接、可靠的、基于字节流的传输层通信协议,由IETF的RFC793定义。流就是指不间断的数据结构,可以想象成水管中的水流。TCP在传送数据之前必须先建立连接,数据传送结束后要释放连... 查看详情

tcp/ip资料

...ISIS路由协议分级链接状态路由协议ISIS原理。RIP路由协议基于距离矢量的路由协议RIP原理。UPnP协议通用即插即协议UPnP的完整过程和报文。LwIP协议栈一套用于嵌入式系统的开源TCP/IP协议栈,支持Socket。NAT协议穿越NAT前先 查看详情

javasocket通信

原理:1.基于TCP协议,建立稳定连接的点对点的通信 a.实时,快速,安全性高,占用系统资源多,效率低2.请求-响应模式 a.客户端       在网络通讯中,第一次主动发起通讯的程序被称作客户端(Cl... 查看详情

基于软件定义无线电的实时频谱分析仪设备连接方法简单2端口tcp/ip连接

TCP/IP传输协议TCP/IP传输协议,即传输控制/网络协议,也称为网络通讯协议,是在网络使用中的最基本的通信协议。TCP/IP传输协议对互联网中各部分进行通信的标准和方法进行了规定,并且它是保证网络数据信息及... 查看详情

javasocket编程(代码片段)

Socket概念tcp协议全称是TransmissionControlProtocol,传输控制协议,是以字节流的方式发送数据的协议。ip全称为InternetProtocol互联网协议,tcp/ip协议在四层模型中的传输层。http、ftp、telnet(ssh)远程登录服务为应用层协议࿰... 查看详情

javasocket编程简介

#JavaTCPIp编程 其实下面几张图片就可以解释简单解释tcp-ip协议的大体流程了。###计算机网络,分组报文和协议网络是一组通过通信信道相互连接的机器组成。组与组之间通过路由器连接数据通过分组报文传递协议,传输报文... 查看详情

javasocket编程学习笔记

在上一篇中,使用了javaSocket+Tcp/IP 协议来实现应用程序或客户端--服务器间的实时双向通信,本篇中,将使用UDP协议来实现Socket的通信。1.关于UDP  UDP协议(用户数据报协议)是无连接的、不可靠的、无序的,速度快,进行... 查看详情

javasocket编程以及与linuxsocketapi关系

Socket编程(基于Linux)Socket独立于具体协议的网络编程接口,在ISO模型中,主要位于会话层和传输层之间;在通用的计算机网络五层模型中,主要位于应用层和传输层之间。LinuxSocket基本上就是BSDSocket需要使用的头文件数据类型:#in... 查看详情

为什么udp和ip这类协议要对报文长度进行限制?

不知道大家在学完UDP,TCP,IP协议后,有没有这样的问题:为什么UDP/IP的报头中专门有一部分对它的报文长度进行限制呢?这样不是费力不讨好吗?为什么不和TCP一样不对报文长度作出要求,想传多少就传多少不更好嘛这个其实和可靠性和... 查看详情

javasocket编程

一、网络编程概述网络编程是指编写运行在多个设备(计算机)的程序,这些设备都通过网络连接起来。java.net包中J2SE的API包含有类和接口,它们提供低层次的通信细节。你可以直接使用这些类和接口,来专注于解决问题,而不... 查看详情

你只会用javasockets?推荐11个开源的javasocket框架

来源:csdn.net/xiaojin21cen/article/details/78587425ZeroCICE的Java版,Netty2作者的后续之作ApacheMINA,Crmky的Cindy之外,还有个超简单的QuickServer,让你专心编写自己的业务代码,不用编写一行TCP代码。1、QuickServer一个免... 查看详情

javasocket模拟http协议客户端之post请求

相比于GET请求,POST报文多了如下几个要素:1,Content-Length,这个是上送报文的长度,以字节为单位2,Content-Type,这主要是涉及到报文的格式和字符集。3,就是主报文    主类SimpleHttpPost:package com.zws.http;import&n... 查看详情

javasocket实现udp编程

UDP简介UDP是UserDatagramProtocol的简称,中文名是用户数据报协议,是OSI(OpenSystemInterconnection,开放式系统互联)参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务,IETFRFC768是... 查看详情

再谈http和https及tcp/udp/ip协议分析,面试官都惊讶的网络见解(代码片段)

一.再谈HTTP再理解协议的本质:双方的一种约定,规则,双方需要按照相同的一套处理机制(协议)进行处理应用层协议对应的是一个服务,FTP文件传输协议,NDS域名解析协议,HTTP超文本传输协议,这些是协议同时也对应着一... 查看详情