UDP通信
来源:互联网 发布:2007excel软件下载 编辑:程序博客网 时间:2024/05/18 21:41
package org;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.InterfaceAddress;
public class UDPClient {
public static void main(String[] args) {
DatagramSocket socket; //用于发送/接收UDP
DatagramPacket packet; //用于保存UDP的内容
InetAddress address;
int port;
byte[] buf1=new byte[1000],buf2=new byte[1000];
String s="Hello,server!",s2;
// if(args.length<3){
// System.out.println("输入本地端口号,服务器名,服务器端口号");
// System.exit(0);
// }
try{
// String ss="";
// InputStreamReader isr=new InputStreamReader(System.in);
// BufferedReader in=new BufferedReader(isr);
// while(true){
// ss=in.readLine();
// if(ss.equals("end")){
// break;
// }
// String sss[]=ss.split(" ");
// System.out.println(sss.length);
// for(int i=0;i<sss.length;i++){
// System.out.println(sss[i]);
// }
socket=new DatagramSocket(2777); //将Socket连接到本机的2777端口上
address=InetAddress.getByName("192.168.0.5");
port = 1777;
buf1=s.getBytes();
//参数分别表示:发送数据报的字节数组,发送数据报的长度,发送数据报的目的地址即接收者IP,发送数据报的端口
packet=new DatagramPacket(buf1,buf1.length,address,port);
socket.send(packet); //向服务器发送packet
//参数分别表示:接收数据报的字节数组,接收数据报的长度即读取的字节数
packet=new DatagramPacket(buf2,buf2.length); //生成接收的packet
socket.receive(packet); //接收服务器传来的packet
s2= new String(packet.getData());
System.out.println("Received from server:"+s2); //打印packet内容
socket.close(); //关闭Socket
//}
}catch(Exception e){
System.out.println("Error:"+e);
}
}
}
package org;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
public class UDPServer extends Thread {
//启动服务器线程的主程序
private DatagramPacket packet;
private DatagramSocket socket;
static final int sport=1777;
UDPServer(){
//将Socket连接到本机的一个可用端口上
try {
socket = new DatagramSocket(sport);
System.out.println("Listening on port:"+socket.getLocalPort());
} catch (Exception e) {
System.out.println("Error:"+e);
}
}
public void run(){
//线程的主要操作
if(socket==null){
return ;
}
while(true){
try{
InetAddress address;
int cport;
byte[] buf1=new byte[1000],buf2=new byte[1000];
String s="Your packet is received";
packet=new DatagramPacket(buf1,buf1.length); //生成一个接收数据报
socket.receive(packet); //接收数据报
String s1=new String(packet.getData());
System.out.println("Received from client:"+s1); //打印数据报的内容
address=packet.getAddress();
cport=packet.getPort(); //获得数据报的源地址和端口
buf2=s.getBytes();
packet=new DatagramPacket(buf2,buf2.length,address,cport); //生成发送的数据报
socket.send(packet);
}catch(Exception e){
System.out.println("Error:"+e);
}
}
// protected void finalize(){
// if(socket !=null){
// socket.close();
// System.out.println("Socket Closed.");
// }
// }
}
}
package org;
public class c15_7 {
public static void main(String[] args) {
UDPServer server=new UDPServer();
server.start();
}
}
- UDP通信
- UDP通信
- UDP通信
- UDP-通信
- UDP通信
- UDP 通信
- UDP通信
- UDP通信
- UDP通信
- UDP通信
- UDP通信
- UDP通信
- UDP通信
- UDP 通信
- UDP通信
- udp通信
- UDP通信
- UDP通信
- MSSQL2011,denali,下载安装,windows2008 sp2,PowerShell 2.0(含视频)
- POJ1032解题报告
- 用户体验之别让我烦
- 常用EDA软件的license文件结构分析
- 关于图像特征提取
- UDP通信
- [转] win7PE U盘启动制作方法
- GIZA++运行情况记录和结果对比
- Android编译系统结构
- 自适应绘图函数
- 希望以后WDC不要和中国扯上关系了,丢人!(从WDC 2010 看到的)
- 关于socket网络的一个小问题
- IE浏览器中对图片点击“右键另存为”只能是bmp格式的解决
- OTL调用存储过程/函数及注意事项