import java.awt.event.WindowAdapter
import java.awt.event.WindowEvent
import java.io.*
import java.net.*/*6、 采用UDP协议,编写一个Java网络应用程序,该应用分服务器端程序和客户端程序两部分。
* 客户端指定一个服务器上的文件名,让服务器发回该文件的内容,或者提示文件不存在。
* (20分)(服务端程序和客户端程序分别命名为Server.java和Client.java)*/
public class N4BT6 extends Frame
{
DatagramSocket socket
DatagramPacket packet byte[] buf
File file
FileInputStream input
String message = "该文件不存在"
TextArea text
public N4BT6(String title)
{
super(title)
text = new TextArea(6,4)
add(text)
setSize(400, 300)
setVisible(true)
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
dispose()
}
})
buf = new byte[1024]
try
{
socket = new DatagramSocket(1230)
packet = new DatagramPacket(buf, buf.length)
socket.receive(packet)
file = new File(new String(packet.getData()))
socket = new DatagramSocket()
}
catch (Exception e)
{e.printStackTrace()
}
if(file.exists())
{
try
{
buf = new byte[(int)file.length()]
packet = new DatagramPacket(buf,buf.length,InetAddress.getLocalHost(),1234)
input = new FileInputStream(file)
input.read(buf)
socket.send(packet)
}
catch (IOException e)
{
e.printStackTrace()
}
}
else
{
try
{
packet = new DatagramPacket(message.getBytes(),message.getBytes().length,
InetAddress.getLocalHost(),1234)
socket.send(packet)
}
catch (Exception e)
{
e.printStackTrace()
}
}
}
public static void main(String[] args)
{
new N4BT6("Server")
}
}
客户端:import java.awt.*
import java.awt.event.*
import java.net.DatagramPacket
import java.net.DatagramSocket
import java.net.InetAddresspublic class N4BT6_2 extends Frame
{
TextArea text
String message = "Q.txt"
DatagramSocket socket
DatagramPacket packet
byte[] buf
public N4BT6_2(String title)
{
super(title)
text = new TextArea(6,4)
add(text)
setSize(400, 300)
setVisible(true)
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
dispose()
}
})
try
{
socket = new DatagramSocket()
packet = new DatagramPacket(message.getBytes(),message.getBytes().length,
InetAddress.getLocalHost(),1230)
socket.send(packet)
}
catch (Exception e)
{
e.printStackTrace()
}
try
{
buf = new byte[1024]
socket = new DatagramSocket(1234)
packet = new DatagramPacket(buf,buf.length)
socket.receive(packet)
text.append(new String(buf))
}
catch (Exception e)
{
e.printStackTrace()
}
}
public static void main(String[] args)
{
new N4BT6_2("Client")
}
}
参数的传输方式,get,post,可通过form 的 method 属性设置,还有一种get 传输方式是在你请求的servlet的路径后面跟上参数:具体写法是:servletPath?parametorName=value,多个参数
用&隔开。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)