Java UDP网络编程 - 最简单示例

 

转自 http://blog.csdn.net/wintys/article/details/3525643


  1. /**
  2. *UDPServer
  3. *@author Winty wintys@gmail.com
  4. *@version 2008-12-15
  5. */
  6. import java.io.*;
  7. import java.net.*;
  8. class UDPServer{
  9. publicstaticvoid main(String[] args)throws IOException{
  10. DatagramSocket server = new DatagramSocket(5050);
  11. byte[] recvBuf = newbyte[100];
  12. DatagramPacket recvPacket
  13. = new DatagramPacket(recvBuf , recvBuf.length);
  14. server.receive(recvPacket);
  15. String recvStr = new String(recvPacket.getData() , 0 , recvPacket.getLength());
  16. System.out.println("Hello World!" + recvStr);
  17. int port = recvPacket.getPort();
  18. InetAddress addr = recvPacket.getAddress();
  19. String sendStr = "Hello ! I'm Server";
  20. byte[] sendBuf;
  21. sendBuf = sendStr.getBytes();
  22. DatagramPacket sendPacket
  23. = new DatagramPacket(sendBuf , sendBuf.length , addr , port );
  24. server.send(sendPacket);
  25. server.close();
  26. }
  27. }
  1. /**
  2. *UDPClient
  3. *@author Winty wintys@gmail.com
  4. *@version 2008-12-15
  5. */
  6. import java.io.*;
  7. import java.net.*;
  8. class UDPClient{
  9. publicstaticvoid main(String[] args)throws IOException{
  10. DatagramSocket client = new DatagramSocket();
  11. String sendStr = "Hello! I'm Client";
  12. byte[] sendBuf;
  13. sendBuf = sendStr.getBytes();
  14. InetAddress addr = InetAddress.getByName("127.0.0.1");
  15. int port = 5050;
  16. DatagramPacket sendPacket
  17. = new DatagramPacket(sendBuf ,sendBuf.length , addr , port);
  18. client.send(sendPacket);
  19. byte[] recvBuf = newbyte[100];
  20. DatagramPacket recvPacket
  21. = new DatagramPacket(recvBuf , recvBuf.length);
  22. client.receive(recvPacket);
  23. String recvStr = new String(recvPacket.getData() , 0 ,recvPacket.getLength());
  24. System.out.println("收到:" + recvStr);
  25. client.close();
  26. }
  27. }
 

【转】javaUDP套接字通信的更多相关文章

  1. IPC——流套接字通信

    Linux进程间通信——使用流套接字 前面说到的进程间的通信,所通信的进程都是在同一台计算机上的,而使用socket进行通信的进程可以是同一台计算机的进程,也是可以是通过网络连接起来的不同计算机上的进 ...

  2. Python之路(第三十一篇) 网络编程:简单的tcp套接字通信、粘包现象

    一.简单的tcp套接字通信 套接字通信的一般流程 服务端 server = socket() #创建服务器套接字 server.bind() #把地址绑定到套接字,网络地址加端口 server.lis ...

  3. 并发编程 - 协程 - 1.协程概念/2.greenlet模块/3.gevent模块/4.gevent实现并发的套接字通信

    1.协程并发:切+保存状态单线程下实现并发:协程 切+ 保存状态 yield 遇到io切,提高效率 遇到计算切,并没有提高效率 检测单线程下 IO行为 io阻塞 切 相当于骗操作系统 一直处于计算协程 ...

  4. 网络编程 - 1.简单的套接字通信/2.加上通信循环/3.bug修复/4.加上链接循环/5.模拟ssh远程执行命令

    1.简单的套接字通信 服务端 ''' 服务端 接电话 客户端 打电话 1.先启动服务端 2.服务端有两种套接字 1.phone 用来干接收链接的 2.conn 用来干收发消息的 ''' import ...

  5. 基于套接字通信的简单练习(FTP)

    本项目基于c/s架构开发(采用套接字通信,使用TCP协议) FTP-Socket"""__author:rianley cheng""" 功 ...

  6. Python 37 基于多线程实现套接字 、gevent 、单线程下实现并发的套接字通信

    一:基于多线程实现套接字 可添加多个客户端 from socket import * from threading import Thread def comunicate(conn): while ...

  7. linux 本地套接字通信

    本地套接字通信 利用本地套接字,也可以进程间通信. 本地套接字和有名管道一样都利用伪文件 管道的文件类型是p 本地套接字的文件类型是s. 当调用bind函数后,就会生成本地套接字对应的伪装文件 srw ...

  8. 网络编程 TCP协议:三次握手,四次回收,反馈机制 socket套接字通信 粘包问题与解决方法

    TCP协议:传输协议,基于端口工作 三次握手,四次挥手 TCP协议建立双向通道. 三次握手, 建连接: 1:客户端向服务端发送建立连接的请求 2:服务端返回收到请求的信息给客户端,并且发送往客户端建立 ...

  9. python 之 网络编程(基于TCP协议的套接字通信操作)

    第八章网络编程 8.1 基于TCP协议的套接字通信 服务端套接字函数 s.bind() 绑定(主机,端口号)到套接字 s.listen() 开始TCP监听 s.accept() 被动接受TCP客户的连 ...

随机推荐

  1. 贝叶斯公式与最大后验估计(MAP)

    1, 频率派思想 频率派思想认为概率乃事情发生的频率,概率是一固定常量,是固定不变的 2, 最大似然估计 假设有100个水果由苹果和梨混在一起,具体分配比例未知,于是你去随机抽取10次,抽到苹果标记为 ...

  2. 2018.5.12 storm数据源kafka堆积

    问题现象: storm代码依赖4个源数据topic,2018.5.12上午8点左右开始收到告警短信,源头的4个topic数据严重堆积. 排查: 1.查看stormUI, storm拓扑结构如下: 看现 ...

  3. Java开发经常容易犯的错误

    调用Set.addAll()方法时抛UnsupportedOperationException异常 上面的Set是Map中keySet的返回结果. 程序中这样两句代码运行时,抛UnsupportedO ...

  4. @Transactional 事务说明

    这里面有几点需要大家留意:A. 一个功能是否要事务,必须纳入设计.编码考虑.不能仅仅完成了基本功能就ok.B. 如果加了事务,必须做好开发环境测试(测试环境也尽量触发异常.测试回滚),确保事务生效.C ...

  5. python Selenium启动chromedriver

    从网上下载对应版本的chromedriver之后,里面的内容仅为一个.exe文件, 将其解压在chrome的安装目录下(C:\Program Files (x86)\Google\Chrome\App ...

  6. day44 mysql高级部分内容

    复习 1.多表查询 2.navicat 3.pymysql 1.视图 ***(是一个虚拟表,非真实存在的) 引子 select * from emp left join dep on emp.dep_ ...

  7. 【算法】BM算法

    目录 BM算法 一. 字符串比较的分析 二.BM算法的思想 三.算法实现 BM算法 @ 一. 字符串比较的分析 如果要判定长度为\(n\)两个字符串相等,比较中要进行\(n\)比较,但是如果要判定两个 ...

  8. vue全局API

    一.Vue.extend() 顾名思义  extend  继承,官方给出的解释是   (使用基础 Vue 构造器,创建一个“子类”.参数是一个包含组件选项的对象.) Vue构造器是指  vue是一个构 ...

  9. hive上传下载数据

    ------------------------------------------read me--方式1:适用于工具传输--方式2:适用于手动临时性传输---------------------- ...

  10. jmeter在几个固定的字符串中,随机取其中之一的方法

    在测试过程中遇到上送字段必需是几个固定值中的一个, 使用读取文件中几个固定值,然后随机在这几个固定值中选择的办法解决问题 __CSVRead() CSV file to get values from ...