?? sender.java
字號:
package client;
import java.net.*;
import java.net.*;
import java.io.*;
import fishinfo.FishInfo;
public class Sender{
//private DatagramSocket socket;
//private DatagramPacket packet;
InetAddress ser_inet;
FishInfo info;
public Sender(FishInfo info,InetAddress ser_inet){
this.ser_inet = ser_inet;
this.info = info;
send();
}
private synchronized void send()
{
try {
DatagramSocket socket;
DatagramPacket packet;
ByteArrayOutputStream byteStream = new ByteArrayOutputStream(500);
ObjectOutputStream os = new ObjectOutputStream(new
BufferedOutputStream(byteStream));
os.flush();
os.writeObject(info);
os.flush();
byte[] sendBuf = byteStream.toByteArray();
//創建udp數據包以發送數據
System.out.println("send data to:"+ser_inet.getHostAddress());
packet = new DatagramPacket(sendBuf,sendBuf.length,
ser_inet,5003);
//創建發送udp套接字,指定套接字口。
//綁定端口5002,發送通信數據
//如果該端口已綁定,則等待片刻后,重新綁定
while(true)
{
try{
socket = new DatagramSocket(5002);
break;
}
catch(BindException be)
{
Thread.sleep(20);
continue;
}
}
os.close();
//綁定成功后,發送通通信數據
socket.send(packet);
//發送完畢關閉套接字。
socket.close();
}catch(Throwable t) {
t.printStackTrace();
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -