DatagramSocket客户端与服务端Java实例

 1 import java.io.IOException;
 2 import java.net.DatagramPacket;
 3 import java.net.DatagramSocket;
 4 import java.net.InetAddress;
 5
 6 public class TimeClient_UDP{
 7      public static void main(String args[]) throws IOException{
 8          String host = "localhost";
 9          byte[] msg = new byte[256];//存放收发数据
10          InetAddress addr = InetAddress.getByName(host);//获取主机地址
11          System.out.println("侦听主机为:"+addr);
12          DatagramPacket packet = new DatagramPacket(msg,msg.length,addr,3000);//创建要收发的数据报
13          DatagramSocket socket = new DatagramSocket();//创建用于通信的Socket对象
14          socket.send(packet);//发送数据报
15          packet = new DatagramPacket(msg,msg.length);//创建接收的数据报
16          socket.receive(packet);//接收数据报,存放到packet中
17          String time = new String(packet.getData());//获取数据报中的数据内容
18          System.out.println("侦听主机:"+host+"的当前日期为:"+time);
19          socket.close();//释放Socket
20     }
21 }

DatagramSocket客户端

 1 import java.io.IOException;
 2 import java.net.DatagramPacket;
 3 import java.net.DatagramSocket;
 4 import java.net.InetAddress;
 5 import java.util.Date;
 6 public class TimeServer_UDP{
 7      public static void main(String args[]) throws IOException{
 8           DatagramSocket socket = new DatagramSocket(3000);//Socket对象.端口3000
 9           System.out.println("等待接收数据......");
10           while(true){
11                byte buf[] = new byte[256];
12                DatagramPacket packet = new DatagramPacket(buf,buf.length);
13                socket.receive(packet);
14
15                InetAddress addr = packet.getAddress();
16                int port = packet.getPort();
17                System.out.println("已接收来自" + addr.toString() + ":"+port+"的数据");
18
19                String date = new Date().toString();
20                buf = date.getBytes();
21                packet = new DatagramPacket(buf,buf.length,addr,port);
22                socket.send(packet);
23           }
24      }
25 }

DatagramSocket服务端

DatagramSocket客户端java project工程目录为E:\EclipseProject\TimeClient_UDP。

DatagramSocket服务端java project工程目录为E:\EclipseProject\TimeServer_UDP。

在Windows系统的dos命令行cmd中运行的步骤:

1、配置系统环境变量

JAVA_HOME(添加存放jdk的目录)  C:\Program Files\Java\jdk1.8.0_65

Path(添加jdk目录下的bin子目录)  %JAVA_HOME%\bin

classpath(添加jdk目录下的lib子目录里需要的包)  .;%JAVA_HOME%\jre\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

2、打开两个dos窗口,分别进入DatagramSocket客户端与服务端的工程目录(上述目录)

3、将源码通过javac 工程名,编译出.class文件;再java 工程名,运行

4、步骤2,3详见图1DatagramSocket客户端运行效果;图2DatagramSocket服务端运行效果。

时间: 2024-10-12 17:05:27

DatagramSocket客户端与服务端Java实例的相关文章

基于thrift的java和python分别作为客户端和服务端的调用实现

前面已经实现了纯java的thrift的实现. 现在实现实现一下python作为客户端和服务端的thrift的调用 1.python作为客户端,java作为服务端 java服务端代码参考前面写的博客 客户端python的准备: 1.使用mac下的PyCharm,专业的python开发工具 2.生成python代码 thrift --gen py thrift/data.thrift 3.在mac下安装thrift的python依赖 sudo python setup.py install 安装t

java网络编程客户端与服务端原理以及用URL解析HTTP协议

常见客户端与服务端 客户端: 浏览器:IE 服务端: 服务器:web服务器(Tomcat),存储服务器,数据库服务器. (注:会用到Tomact服务器,在webapps下有一个自己创建的目录myweb,下面有一个文件1.html) 服务端原理 自定义一个服务端,使用自己已有的客户端IE浏览器,了解一下客户端都发送了什么请求. 1 package cn.ie_server; 2 3 import java.io.IOException; 4 import java.io.InputStream;

[Java]命令行模拟TCP客户端与服务端的简单小程序遇到的问题(基础不牢!扎实和亲手实践比什么都重要!)

简单得不能再简单的需求: 简单模拟TCP客户端与服务端的一次连接和通信,客户端发出一个消息,服务端回馈一个消息 自己第一次编写的代码: Client: class TcpClient1 { public static void main(String[] args) throws Exception { Socket s=new Socket("127.0.0.1",10010); OutputStream out=s.getOutputStream(); out.write(&quo

java自动化测试成长日记-之CVS客户端和服务端安装和部署1:CVS服务端的配置和基本使用

CVS服务端的配置和基本使用 在做java自动化测试集成环境搭建的时候,无论怎样,你都会选择一个源代码管理工具,如:SVN,CVS,VSS等:但如果你使用Eclipse工具,建议你使用CVS源代码管理工具,因为它本身就自带了CVS客户端插件,可以直接使用(具体使用情况,可参考:java自动化测试成长日记-之CVS客户端和服务端安装和部署2:CVS客户端的配置和基本使用章节): 首先,你需要下载:cvsnt-2.5.03.2151安装包.msi,服务端安装软件(可在百度里面搜索找到,相应的资源).

java在线聊天项目1.1版 ——开启多个客户端,分别实现注册和登录功能,使用客户端与服务端信息request机制,重构线程,将单独的登录和注册线程合并

实现效果图: eclipse项目中初步整合之前的各个客户端和服务端的窗口与工具类,效果如下图: 已将注册服务器线程RegServer功能放到LoginServer中,使用客户端与服务端的request请求机制,根据请求是注册还是登录,分别进行相应response,客户端根据相应内容判断下一步操作. 发送信息的模式还较为原始,没有使用json方法,但gson包已经导入,支持发送键值对的字符串,及自动解析. 登录对话框LoginDialog类代码如下: package com.swift.frame

webservciescxf框架之客户端与服务端实例详解

webservciescxf框架之客户端与服务端实例详解 可以关注我之前发的文章,那是采用jdk发布服务并且使用wsimpor来生成客户端的. 但本文采用的是soap1.2协议,而wsimport仅对soap1.1协议有效,所以,本文采用的是 cxf框架提供的wsdl2java 来生成客户端,如下: wsdl2java -d . http://127.0.0.1/framework?wsdl 另外,需要强调的是wsdl2java工具(axis好像也提供了)既支持soap1.1协议,也支持soap

java Socket通信,客户端与服务端相互发消息

1.通信过程 网络分为应用层,http.ssh.telnet就是属于这一类,建立在传输层的基础上.其实就是定义了各自的编码解码格式,分层如下: 2.Socket连接 上述通信都要先在传输层有建立连接的基础上才能完成,TCP通过三次握手建立连接:   Socket与http的区别可以看下这个: https://www.cnblogs.com/meier1205/p/5971313.html 还有搜索:http下午茶 3.JAVA socket 客户端与服务端互发消息 实现结构图:   客户端和服务

Android客户端与服务端交互之登陆示例

今天了解了一下android客户端与服务端是怎样交互的,发现其实跟web有点类似吧,然后网上找了大神的登陆示例,是基于IntentService的 1.后台使用简单的servlet,支持GET或POST.这个servlet最终返回给前台一个字符串flag,值是true或false,表示登录是否成功. servlet使用之前需要配置,主义servlet的servlet-name要和servlet-mapping的servlet-name一致,否则找不到路径 我是在myEclipse上创建的一个we

网络编程(浏览器客户端-自定义服务端)

1 package netTest; 2 /* 3 * 演示客户端和服务端 4 * 1 客户端:浏览器 5 * 服务端:自定义 6 * tomcat 服务器所作的事情:用printwriter out 把网页数据全打到客户端去, 7 * 而浏览器可以解析 数据. 8 * telnet 远程登录:windows 提供的远程登录的工具,它可以去连接网络中的任意一台主机(dos命令行下连接) 9 * 可以对主机进行命令式的配置.(客户端软件) 10 */ 11 import java.net.*; 1