UDP/IP+BIO

[size=medium][color=red]java对UDP/IP方式的网络数据传输同样采用Socket机制,只是UDP/IP下Socket没有建立连接的要求,由于UDP/IP是无连接的,因此无法进行双向的通信,这也就要求如果要双方通信的话,必须两端都成为UDPserver。在java中可以基于DatagramSocket 和 DatagramPacket来实现UDP/IP+BIO方式的系统间通信,DatagramSocket负责监听端口及读写数据。DatagramPacket作为数据流对象进行传输。[/color][/size]

package org.cui.udpip.bio;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
/**
*
* @author clin
*
*/
public class UDPServerUser01 {

public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
DatagramSocket socket = new DatagramSocket(7777);
DatagramPacket receivepack = new DatagramPacket(new byte[1024] , 1024) ;
socket.receive(receivepack) ;
System.out.println("你接受的内容是:"+new String(receivepack.getData(),0,receivepack.getLength()) ) ;
String str = "my name clin ." ;
DatagramPacket sendpack = new DatagramPacket(str.getBytes() , str.length() ,InetAddress.getLocalHost() ,9000) ;
socket.send(sendpack) ;
System.out.println("你發送的內容是:"+str);

}
}


package org.cui.udpip.bio;

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

/**
*
* @author clin
*
*/
public class UDPServerUser02 {
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
DatagramSocket socket = new DatagramSocket(8888) ;
String str = "hello my name is user01 what's your name" ;
System.out.println("你發送的信息:"+str);
DatagramPacket sendpack = new DatagramPacket(str.getBytes(), str.length(), InetAddress.getLocalHost(), 3000 ) ;
socket.send(sendpack) ;
DatagramPacket receivepack = new DatagramPacket(new byte[1024], 1024) ;
socket.receive(receivepack) ;
System.out.println("你接受的内容是:"+new String(receivepack.getData(),0,receivepack.getLength()) ) ;
}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值