我是一位初学者,请帮我看看程序,谢谢
这是一个UDP通信软件,我用的是JCreator,据报44、45、46行错了,但是我不会改正,希望达人帮我看看,不胜感激。另外,我想问问,如何将它生成文件?如何设置通信端口?
程序如下:
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.util.*;
import javax.swing.*;
public class HostComputer1 extends JFrame implements ActionListener,Runnable{
DatagramSocket socket;
byte[]buf=new byte[256];
InetAddress address;
JTextArea t1=new JTextArea();
JTextField t2=new JTextField(20);
DatagramPacket dp=new DatagramPacket(buf,buf.length);
public HostComputer1(){
JScrollPane jsp=newJScrollPane(t1);
this.getContentPane().add(jsp,"Center");
JPanel p1=new JPanel();
p1.add(new JLable("发送的信息"));
p1.add(t2);
t2.addActionListerer(this);
this.getContetPane().add(p1,"South");
setTitle("我是主机1");
setSize(350,200);
setVisible(true);
(new Thread(this)).start();
}
public void actionPerformed(ActionEvent e){
try{
byte [] b=t2.getText().getBytes();
DatagramSocket socket=new DatagramSocket();
InetAddress address=InetAddress.getByName("localhost");
DatagramPacket packet=new DatagramPacket (b,b.length,address,6666);
socket.send(packet);
t1.append("发送的数据:"+t2.getText()+"\n");
t1.append("数据发送到:"+address+"\n");
t1.append("数据长度为:"+packet.getLength()+"\n");
}catch(Exception ee){ee.printStackTrace();}
}
public void run(){
try{
DatagramSocket socket=new DatagramSocket(8888);
while(true){
socket.receive(dp)
String received=new String(dp.getData(),0,dp.getLength());
t1.append("收到的数据:"+received+"\");
t1.append("数据来自于:"+dp.getAddress()+"\n");
t1.append("数据长度为:"+dp.getLength()+"\n");
}
}catch(Exception e){System.out.println("Error"+e);}
}
public static void main(String [] args){
JFrame.setDefaultLookAndFeelDecorated(true);
Font font=new Font("JFrame",Font,PLAIN,14);
Enumeration keys=UIManager.getLookAndFeelDefaults().keys();
while(key.hasMoreElements()) {
Object key=keys.nextElement();
if(UIManager.get(key) instanceof Font)
UIManager.put(key,font);
}
new HostComputer1();
}
}
这是一个UDP通信软件,我用的是JCreator,据报44、45、46行错了,但是我不会改正,希望达人帮我看看,不胜感激。另外,我想问问,如何将它生成文件?如何设置通信端口?
程序如下:
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.util.*;
import javax.swing.*;
public class HostComputer1 extends JFrame implements ActionListener,Runnable{
DatagramSocket socket;
byte[]buf=new byte[256];
InetAddress address;
JTextArea t1=new JTextArea();
JTextField t2=new JTextField(20);
DatagramPacket dp=new DatagramPacket(buf,buf.length);
public HostComputer1(){
JScrollPane jsp=newJScrollPane(t1);
this.getContentPane().add(jsp,"Center");
JPanel p1=new JPanel();
p1.add(new JLable("发送的信息"));
p1.add(t2);
t2.addActionListerer(this);
this.getContetPane().add(p1,"South");
setTitle("我是主机1");
setSize(350,200);
setVisible(true);
(new Thread(this)).start();
}
public void actionPerformed(ActionEvent e){
try{
byte [] b=t2.getText().getBytes();
DatagramSocket socket=new DatagramSocket();
InetAddress address=InetAddress.getByName("localhost");
DatagramPacket packet=new DatagramPacket (b,b.length,address,6666);
socket.send(packet);
t1.append("发送的数据:"+t2.getText()+"\n");
t1.append("数据发送到:"+address+"\n");
t1.append("数据长度为:"+packet.getLength()+"\n");
}catch(Exception ee){ee.printStackTrace();}
}
public void run(){
try{
DatagramSocket socket=new DatagramSocket(8888);
while(true){
socket.receive(dp)
String received=new String(dp.getData(),0,dp.getLength());
t1.append("收到的数据:"+received+"\");
t1.append("数据来自于:"+dp.getAddress()+"\n");
t1.append("数据长度为:"+dp.getLength()+"\n");
}
}catch(Exception e){System.out.println("Error"+e);}
}
public static void main(String [] args){
JFrame.setDefaultLookAndFeelDecorated(true);
Font font=new Font("JFrame",Font,PLAIN,14);
Enumeration keys=UIManager.getLookAndFeelDefaults().keys();
while(key.hasMoreElements()) {
Object key=keys.nextElement();
if(UIManager.get(key) instanceof Font)
UIManager.put(key,font);
}
new HostComputer1();
}
}