📄 udpconnection.java
字号:
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: www.lazybug.com</p>
* @author 刘学
* @version 1.0
*/
package org.lazybug.net;
import java.io.*;
import java.net.*;
import java.util.*;
import org.lazybug.util.*;
public class UDPConnection extends Connection
{
private int bufferLength = 0;
public int timeout = 0;
public DatagramSocket socket;
public UDPConnection(int nPageNum, int nPageSize) throws SocketException
{
super(nPageNum, nPageSize);
bufferLength = this.pageNum * this.pageSize;
super.buffer = new byte[bufferLength];
socket = new DatagramSocket();
}
public UDPConnection(int nPageNum, int nPageSize, int port) throws SocketException
{
super(nPageNum, nPageSize);
bufferLength = this.pageNum * this.pageSize;
super.buffer = new byte[bufferLength];
this.port = port;
socket = new DatagramSocket(port);
}
public int getMaxPageLength()
{
return this.pageSize;
}
public int getBufferLength()
{
return bufferLength;
}
/**
* 接收数据
* @return 接收数据是否成功
*/
public int onReceiveFrom(Packet packet) throws IOException
{
DatagramPacket dp = new DatagramPacket(getBuffer(),
packet.buffer_offset,
pageSize);
if( timeout > 0 ) socket.setSoTimeout(timeout);
socket.receive( dp );
Tools.copyByteArray(dp.getAddress().getAddress(), packet.ip);
packet.port = dp.getPort();//设置端口
return dp.getLength();
}
public int onSendTo(Packet packet) throws IOException
{
DatagramPacket dp = new DatagramPacket( buffer,
packet.buffer_offset,
packet.getLength(),
InetAddress.getByAddress(packet.ip),
packet.port);
socket.send(dp);
return dp.getLength();
}
public void close()
{
this.socket.close();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -