实验原理:设计实现UDP通信,通过使用DatagramPacket以及DatagramSocket类,实现基本网络编程。
实验目的:掌握Java网络编程方法,学会使用Java所提供的网络编程类,验证计算机网络基本通信原理。
实验内容:
在一台计算机上相互发送和接收数据,具体要求如下:
1)接收程序使用端口号为5000
2)发送程序的端口号由系统分配
3)利用ipconfig等方式预先获得本地计算机的IP地址,作为接收方的IP地址,本实验是在同一台计算机上模拟两台计算机之间数据的交换。
4)要求接收方显示出它所接收到的信息,并同时显示发送放的IP地址以及端口。
假设该计算机的IP地址为202.115.30.21,系统为其分配的端口号为3878,发送方发送了一条“Hello World”字符串信息,则程序运行结果如下
Hello World from 202.115.30.21:3878
谢谢了,小弟急用啊
----------------解决方案--------------------------------------------------------
不太喜欢帮别人写作业
这个题目又不难
掌握了基本的东西就可以写了
楼主还是自己先写写,有什么具体的问题再来问
我们会尽量帮你的
----------------解决方案--------------------------------------------------------
公选课,将这堂课的时候没有去,明天就要交了,版主帮帮忙嘛
----------------解决方案--------------------------------------------------------
本来是不想帮的,但是就当是复习一下以前学的吧
你们老师是想要GUI的版本,还是CMD的版本?
----------------解决方案--------------------------------------------------------
确实不是很难,还是自己作,就当作练习一下。
不要老是让别人给你写作业。
找一个例子作模板,大概不到一个小时就可以搞定了!!
----------------解决方案--------------------------------------------------------
在JDK中可以运行就ok了
----------------解决方案--------------------------------------------------------
我关键是不知道怎么得到IP并且现实出来
----------------解决方案--------------------------------------------------------
[CODE]/*
* Receive.java
*
* Created on 2006年11月29日, 下午8:56
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package testUDP;
/**
*
* @author lbf
*/
import java.net.*;
import java.io.*;
public class Receive extends Thread{
private DatagramSocket ds;
private DatagramPacket dp;
/** Creates a new instance of Receive */
public Receive() {
initOther();
this.start();
}
private void initOther(){
try{
ds=new DatagramSocket(5000);
dp=new DatagramPacket(new byte[8192],8192);
}
catch(Exception exe){
exe.printStackTrace();
}
}
private void displayPacket(){
String s=new String(dp.getData(),0,dp.getLength());
String ip=dp.getAddress().getHostAddress();
int port=dp.getPort();
System.out.println(s+" from "+ip+":"+port);
}
public void run(){
System.out.println("start receive.....");
while(true){
try{
ds.receive(dp);
displayPacket();
}
catch(Exception exe){
exe.printStackTrace();
}
}
}
public static void main(String[] args) {
new Receive();
}
}[/CODE]
这是收的程序
----------------解决方案--------------------------------------------------------
[CODE]/*
* Send.java
*
* Created on 2006年11月29日, 下午8:56
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package testUDP;
/**
*
* @author lbf
*/
import java.io.*;
import java.net.*;
public class Send extends Thread{
private DatagramSocket ds;
private DatagramPacket dp;
/** Creates a new instance of Send */
public Send() {
initOther();
this.start();
}
private void initOther(){
try{
byte[] data="Hello World!".getBytes();
InetAddress to=InetAddress.getLocalHost();
ds=new DatagramSocket();
dp=new DatagramPacket(data,data.length,to,5000);
}
catch(Exception exe){
exe.printStackTrace();
}
}
private void sendPacket()throws Exception{
ds.send(dp);
System.out.println("send over");
}
public void run(){
System.out.println("start to send.....");
while(true){
try{
sendPacket();
Thread.sleep(1000);
}
catch(Exception exe){
exe.printStackTrace();
}
}
}
public static void main(String[] args) {
new Send();
}
}[/CODE]
这是发的程序
----------------解决方案--------------------------------------------------------
希望对你有所帮助
----------------解决方案--------------------------------------------------------