赵雅智_java网络编程(1) (五)

2014-11-24 09:19:33 · 作者: · 浏览: 4
s.send(dp);
}
ds.close();
}
}
接收端

[java]
package net.csdn.web;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;

public class DemoReceive2 {

public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
DatagramSocket ds = new DatagramSocket(9009);

while(true){
byte[] buf = new byte[1024];
DatagramPacket dp = new DatagramPacket(buf, buf.length);

ds.receive(dp);

String ip = dp.getAddress().getHostAddress();
String data = new String(dp.getData(),0,dp.getLength());
System.out.println(ip+":"+data);
}
}

}

package net.csdn.web;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;

public class DemoReceive2 {

public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
DatagramSocket ds = new DatagramSocket(9009);

while(true){
byte[] buf = new byte[1024];
DatagramPacket dp = new DatagramPacket(buf, buf.length);

ds.receive(dp);

String ip = dp.getAddress().getHostAddress();
String data = new String(dp.getData(),0,dp.getLength());
System.out.println(ip+":"+data);
}
}

}

\

对话框,在同一区域进行收发

[java] view plaincopyprint package src.com.hbsi.net;
import java.net.*;
import java.io.*;

public class ChatDemo {

/**
* @param args
*/
public static void main(String[] args) {
try {
DatagramSocket send=new DatagramSocket();
DatagramSocket rece=new DatagramSocket(9008);

new Thread(new ChatSend(send)).start();
new Thread(new ChatRece(rece)).start();

} catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

}

class ChatSend implements Runnable{
DatagramSocket ds;

public ChatSend(DatagramSocket ds){
this.ds=ds;
}

@Override
public void run() {
try{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

String line=null;

while((line=br.readLine())!=null){
if(line.equals("over"))
break;

byte[] buf=line.getBytes();

DatagramPacket dp=new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.49.255"),9008);

ds.send(dp);
}
ds.close();
}catch(Exception e){
e.printStackTrace();
}
}

}

class ChatRece implements Runnable{
DatagramSocket ds;

public ChatRece(DatagramSocket ds){
this.ds=ds;
}
@Override
public void run() {
while(true){
try{
byte[] buf=new byte[1024];

DatagramPacket dp=new DatagramPacket(buf,buf.length);

ds.receive(dp);

String ip=dp.getAddress().getHostAddress();