📄 udpclient.java
字号:
import java.net.*;
import java.io.*;
public class UdpClient
{
public static void main (String args[])
{
String host="127.0.0.1";
int port=2000;
int length=1024;
try
{
// 建立Socket
DatagramSocket dSocket = new DatagramSocket();
System.out.print("Bound to local port " + dSocket.getLocalPort() +
"\nInput file name : ");
// 输入文件名
BufferedReader bin = new BufferedReader(new InputStreamReader(System.in));
String fileName = bin.readLine();
// 生成Package,发送文件名
byte[] barray = fileName.getBytes ();
DatagramPacket p = new DatagramPacket( barray, barray.length );
p.setAddress (InetAddress.getByName (host));
p.setPort (port);
dSocket.send (p);
// 重置包
p.setData(new byte[length]);
p.setLength(length);
// 生成文件输出流
FileOutputStream fout = new FileOutputStream("a.dat");
// 接收数据,并存储
String s = fileName + "End.";
for (;;)
{
// 接收数据包
dSocket.receive(p);
// 获取数据内容
barray = p.getData();
int len = p.getLength();
// 判定是否结束
String s1 = new String (barray, 0, len);
if (s.equals(s1)) break;
else
{
// 存入文件
for (int i=0; i<len; i++)
{
fout.write(barray[i]);
}
// 发送确认包
dSocket.send (p);
}
}
fout.close();
dSocket.close();
}
catch (IOException ioe)
{
System.err.println ("Error - " + ioe);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -