📄 udpserver.java
字号:
import java.net.*;
import java.io.*;
public class UdpServer
{
public static void main (String args[])
{
DatagramSocket dSocket=null;
int port=2000;
int length=1024;
try
{
// 建立Socket
dSocket = new DatagramSocket(port);
System.out.println ("UDP service started");
for(;;)
{
// 建立空Package
DatagramPacket p = new DatagramPacket( new byte[length], length );
// 接收文件名
dSocket.receive(p);
// 获取文件名
String fileName = new String (p.getData(), 0, p.getLength());
InetAddress addr = p.getAddress();
System.out.println ("Received request from " +
addr.getHostAddress() + ":" +
p.getPort() +
"\nFileName : " + fileName);
// 读文件,并发送
FileInputStream fin = new FileInputStream(fileName);
int data = 0;
for (;;)
{
// 生成输出包
byte[] barray = new byte[length];
int i;
for (i=0; i<length; i++)
{
data = fin.read();
barray[i] = (byte)data;
if (data==-1) break;
}
p.setData(barray);
p.setLength(i);
// 发送包
dSocket.send (p);
// 接收确认包
dSocket.receive(p);
// 发送结束标志
if (data==-1)
{
String s = fileName + "End.";
barray = s.getBytes ();
p.setData(barray);
p.setLength(barray.length);
dSocket.send (p);
break;
}
}
fin.close();
System.out.println ("Packet sent to " +
addr.getHostAddress() + ":" +
p.getPort());
}
}
catch (IOException ioe)
{
System.err.println ("Error - " + ioe);
}
dSocket.close();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -