- 浏览: 459757 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (272)
- java基础 (59)
- struts (8)
- spring (8)
- 数据库 (8)
- java 网络编程 (29)
- hibernate (3)
- JavaScript (10)
- 日志管理 (2)
- jsp (4)
- servlet (7)
- xml (4)
- ajax (2)
- web service (4)
- 算法与数据结构 (13)
- java 反射机制 (11)
- java 泛型 (3)
- java I/O (8)
- java 线程 (12)
- JavaEE (6)
- java解惑 (33)
- 工具 (5)
- MyEclipse编程实践 (1)
- OSGI (2)
- 设计模式 (9)
- 正则表达式 (0)
- EJB (3)
- Ubuntu linux (6)
- Android (1)
- web前端 (2)
- 找工作 (1)
- SCA (1)
- maven (1)
- 缓存 (1)
- json (1)
- javamail (1)
- 工作笔记 (2)
最新评论
-
霜花似雪:
博主可以分享一下源码吗?
使用maven构建web项目实例 -
王庆波-行:
很好的demo!
memcache使用实例 -
surpassno:
大写的牛逼
java可视化显示内存使用情况 -
zhulin0504:
怎么访问NetEcho.html页面呀???
applet与servlet的网络通信 -
springdata:
java多线程实例demo源代码下载:http://www.z ...
java多线程例子
一.socket通信有2种,一种是基于tcp的可靠连接,一种是基于UDP的无连接包投递服务连接,UDP通信中常用到的类有:DatagramSocket类和DatagramPacket类。
二.DatagramSocket类表示用来发送和接收数据报包的套接字。
数据报套接字是包投递服务的发送或接收点。每个在数据报套接字上发送或接收的包都是单独编址和路由的。从一台机器发送到另一台机器的多个包可能选择不同的路由,也可能按不同的顺序到达。
在 DatagramSocket 上总是启用 UDP 广播发送。为了接收广播包,应该将 DatagramSocket 绑定到通配符地址。在某些实现中,将 DatagramSocket 绑定到一个更加具体的地址时广播包也可以被接收。
主要构造方法:
DatagramSocket()
构造数据报套接字并将其绑定到本地主机上任何可用的端口。
DatagramSocket(int port)
创建数据报套接字并将其绑定到本地主机上的指定端口。
主要方法有:
receive(DatagramPacket p) 从此套接字接收数据报包。
send(DatagramPacket p) 从此套接字发送数据报包。
close() 关闭此数据报套接字。
三.DatagramPacket类提供数据包的服务。
数据报包用来实现无连接包投递服务。每条报文仅根据该包中包含的信息从一台机器路由到另一台机器。从一台机器发送到另一台机器的多个包可能选择不同的路由,也可能按不同的顺序到达。不对包投递做出保证。
主要构造方法:
DatagramPacket(byte[] buf, int length)
构造DatagramPacket,用来接收长度为 length的数据包。
DatagramPacket(byte[] buf, int length, InetAddress address, int port)
构造数据报包,用来将长度为length的包发送到指定主机上的指定端口号。
主要方法有:
getPort()返回某台远程主机的端口号,此数据报将要发往该主机或者是从该主机接收到的。
getLength() 返回将要发送或接收到的数据的长度。
getAddress() 返回某台机器的 IP 地址,此数据报将要发往该机器或者是从该机器接收到的。
四.实验代码:
MyReceive.java
MySend.java
二.DatagramSocket类表示用来发送和接收数据报包的套接字。
数据报套接字是包投递服务的发送或接收点。每个在数据报套接字上发送或接收的包都是单独编址和路由的。从一台机器发送到另一台机器的多个包可能选择不同的路由,也可能按不同的顺序到达。
在 DatagramSocket 上总是启用 UDP 广播发送。为了接收广播包,应该将 DatagramSocket 绑定到通配符地址。在某些实现中,将 DatagramSocket 绑定到一个更加具体的地址时广播包也可以被接收。
主要构造方法:
DatagramSocket()
构造数据报套接字并将其绑定到本地主机上任何可用的端口。
DatagramSocket(int port)
创建数据报套接字并将其绑定到本地主机上的指定端口。
主要方法有:
receive(DatagramPacket p) 从此套接字接收数据报包。
send(DatagramPacket p) 从此套接字发送数据报包。
close() 关闭此数据报套接字。
三.DatagramPacket类提供数据包的服务。
数据报包用来实现无连接包投递服务。每条报文仅根据该包中包含的信息从一台机器路由到另一台机器。从一台机器发送到另一台机器的多个包可能选择不同的路由,也可能按不同的顺序到达。不对包投递做出保证。
主要构造方法:
DatagramPacket(byte[] buf, int length)
构造DatagramPacket,用来接收长度为 length的数据包。
DatagramPacket(byte[] buf, int length, InetAddress address, int port)
构造数据报包,用来将长度为length的包发送到指定主机上的指定端口号。
主要方法有:
getPort()返回某台远程主机的端口号,此数据报将要发往该主机或者是从该主机接收到的。
getLength() 返回将要发送或接收到的数据的长度。
getAddress() 返回某台机器的 IP 地址,此数据报将要发往该机器或者是从该机器接收到的。
四.实验代码:
MyReceive.java
package udp; import java.net.*; public class MyReceive { public static void main(String[] args) { MyReceive.receive(); } public static void receive() { try{ DatagramSocket ds=new DatagramSocket(9528);//在端口9528接收数据报包的套接字 byte[] buf=new byte[100]; DatagramPacket dp=new DatagramPacket(buf,100);//创建长度为100的数据接收包 ds.receive(dp);//套接字接受数据包 System.out.println(new String(buf,0,dp.getLength())); //这里接收完成,我们给发送者一条消息,告诉他发送成功了 String str="message send success!"; DatagramPacket senddp=new DatagramPacket(str.getBytes(),str.length(), dp.getAddress(),dp.getPort()); //创建发送包 ds.send(senddp);//执行发送 ds.close();//关闭UDP套接字 }catch(Exception e) {e.printStackTrace();} } }
MySend.java
package udp; import java.io.BufferedInputStream; import java.io.DataInputStream; import java.net.*; public class MySend { public static void main(String[] args) { String str = ""; try { while (str.length() < 1) { System.out.println("请输入您的名字"); str = new DataInputStream(new BufferedInputStream(System.in)) .readLine(); } } catch (Exception e) { e.printStackTrace(); } MySend.send(str); } public static void send(String str) { try{ DatagramSocket ds=new DatagramSocket(); DatagramPacket dp=new DatagramPacket(str.getBytes(),str.length(), InetAddress.getByName("127.0.0.1"), 9528); ds.send(dp); byte[] buf=new byte[100]; DatagramPacket recedp=new DatagramPacket(buf,100); ds.receive(recedp); System.out.println(new String(buf,0,recedp.getLength())); ds.close(); }catch(Exception e) {e.printStackTrace();} } }
发表评论
-
计算机网络知识
2011-06-01 16:19 766一个http请求的详细过程 我们来看当我们在浏览器输入htt ... -
java udp socket实例
2010-12-06 12:28 7094客户端: package udp; import jav ... -
线程池实现tcp socket
2010-12-01 17:23 2850前面的程序,当一个客户端请求到来时,服务器端就会临时性的创建一 ... -
tcp socket实例(改进)
2010-12-01 16:16 1569上一篇的程序服务器端只能接受一个客户端请求,本篇改为模拟多客户 ... -
java tcp socket实例
2010-12-01 13:44 1599网络编程的基本模型就是客户端到服务器端模型,一段必须提供一个固 ... -
telnet协议(转)
2010-10-14 17:17 1114我们知道Telnet服务器软 ... -
whois协议(转)
2010-10-14 14:28 1337当我们预备建立一个Web站点,就必须向域名登记机构申请一个In ... -
java 网络协议(一)Tcp多线程服务器端编程
2010-10-14 11:33 54611,通用服务器代码: package multiThread; ... -
java 网络协议(一)UDP
2010-10-14 09:24 1439UDP测试程序,无需建立连接 package udp; ... -
java 网络协议(一)Tcp
2010-10-14 08:52 51091,简化的服务器端程序 package tcp; imp ... -
java 网络协议(一)InetAddress和Socket(含源码)
2010-10-14 08:24 18581,ip地址和主机名互换 package getip; ... -
ftp协议2(转)
2010-10-12 16:26 940FTP协议工作原理 FTP有 ... -
ftp协议(转)
2010-10-12 16:21 1237ftp协议 FTP协议将使用两 ... -
SMTP服务协议(转)
2010-10-11 15:31 1215SMTP服务概述 鉴于本课程的默认读者群是那些对Inter ... -
利用socket发送接收邮件(转)
2010-10-11 15:18 4156这是在网上摘的,执行接收邮件出现:530 Authentica ... -
jdk6.0从入门到精通-----chapter5网络编程 新I/O(含源码下载)
2010-09-21 10:13 1397本例向用户通过参数指定的主机端口发送一段请求报文,然后读取和打 ... -
jdk6.0从入门到精通-----chapter6--http
2010-09-14 16:32 913用httpconnection进行文件下载,建立一般的jav ... -
java自学===Filter类的应用,验证用户
2010-09-14 14:37 912Filter类 package com; import ... -
java自学===Filter类的应用,网站数量统计
2010-09-14 12:31 1912package filterStatistic; imp ... -
jdk6.0从入门到精通-----chapter5网络编程 udp套接字
2010-09-12 13:46 1132用到的主要类DatagramPacket,DatagramSo ...
相关推荐
一个很好用的JAVA基于TCP和UDP的Socket通信框架,包括客户端和服务器,以及相应的回调方法
SpringMVC的Socket实现+Java Tomcat websocket实现+Java Socket通信实现 +Java UDP通信实现。websocket_study.rar 为springMVC版本的socket实现 websocket02.rar 里面包含tomcat的websocket实现+java socket双向通信...
基于TCP socket的通信的聊天室源代码; 基于UDP的通信的聊天室源代码;
计算机网络socket编程,用Java程序实现UDP网络测试。
java 多线程UDP通信资料与代码: 1、UDP多线程通信server程序(serverThread)详细解析 2、简易UDP client程序 3、多线程Java_Socket编程示例等资料
java 实现socket基于UDP的双机通讯
HP-Socket 是一套通用的高性能 TCP/UDP/HTTP 通信框架,包含服务端组件、客户端组件和Agent组件,广泛适用于各种不同应用场景的 TCP/UDP/HTTP 通信系统,提供 C/C++、C#、Delphi、E(易语言)、Java、Python 等编程...
基于java的modbus TCP通信
两者之间使用基于TCP的Socket通信方式。可是,做了一个测试小例子,结果从客户端传过来的都是乱码。于是上网查,希望可以找到解决方法,可是,网上有好多的答案,经过了很多的实验,都不能很好的解决。没办法只能靠...
实现java使用套接字(socket)实现udp通信,有界面,可以实现单人,多人聊天,以及文件发送,里面含有服务器与客户端。
该文挡中详细总结了Java中怎样通过socket实现客户端和服务器端发送UDP数据包来通信
使用Java编写的tcp和udp的socket通信实验程序。
这是个很全面的java写的socket通信,使用套接字实现基于TCP协议的服务器和客户机程序,还有个UDP协议的例子。文档很详细。
主要介绍了Java基于socket服务实现UDP协议的方法,通过两个简单实例分析了java通过socket实现UDP发送与接收的技巧,需要的朋友可以参考下
用Java实现一个Socket通信模型 pdf 用Java实现网络通讯 pdf 用JAVA实现基于TCP的SOCKET编程 pdf 用Java实现基于TCPIP协议的网络通信程序 pdf 一种基于JAVA多线程的即时显示策略 pdf 利用Java实现网络通信 pdf ...
一个很好用的JAVA基于TCP和UDP的SOCKET通信框架以及相应的回调方法
java网络开发,使用UDP协议进行通信,源代码可以直接运行,并且是可视化界面,方便大家学习
在linux下的udp通信,采用c语言编写,可实现简单的文件下载与上传,适用于初学者
2. 熟悉教材第二章的基本概念二、 实验内容1. 掌握基于 UDP 协议与 Socket 接口的网络通信编程的流程2. 使用 Java 实现基于 UDP 协议与
1.利用Socket通信机制实现一个多线程的端口扫描器。 2.设计要求: 2.1用户界面:用户可以输入IP地址或IP地址段;输入端口号或端口号范围;列表显示主机名、开放的端口及开放端口上相应的服务名称。 2.2端口的有效...