udpclient.java

来自「这是用java编写的用UDP协议的模拟FTP客户端和服务器的程序。」· Java 代码 · 共 73 行

JAVA
73
字号
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 + =
减小字号Ctrl + -
显示快捷键?