关键词:
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超文本传输协议,这些是协议同时也对应着一... 查看详情