**********写了一个简单的UDP程序,接受英文的消息正常,接受中文的消息显示不完整,请问是什么原因 let me test your code. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 OK,因为我有两台机器,所以发信息是指定的IPimport java.awt.*;import java.io.*;import javax.swing.*;import java.awt.event.*;import java.net.*;public class ChatMain{ public static void main(String[] args) { new pframe(); UdpThread ut=new UdpThread(); ut.start(); }}/////////////UDPTHREADclass UdpThread extends Thread{ static DatagramSocket udpsocket; public UdpThread() { try { udpsocket=new DatagramSocket(2001); } catch(Exception e) { } } public void run() { while(true) { try { byte dataBuf[]=new byte[512]; String data; InetAddress host; int port; DatagramPacket recedata=new DatagramPacket(dataBuf,512); udpsocket.receive(recedata); data=new String(recedata.getData(),recedata.getLength()); host=recedata.getAddress(); port=recedata.getPort(); ChatPane pop=new ChatPane(); pop.textarea.setText("From:"+host+":"+port+"\n"+"MESSAGE___:"+data); pop.show(); } catch(Exception ec) { } } }}/////////////UDPTHREAD ENDclass pframe extends JFrame{ private Container con; private String s1; private int mes_num; private JButton button2; private JLabel label2; private Icon icon; private JButton button; private JPanel panel; public pframe() { setTitle("MYQQ VISION 0.1"); con=getContentPane(); s1="New Message : "; mes_num=0; icon=new ImageIcon("boy.gif"); button2=new JButton(icon); button2.setBorder(BorderFactory.createTitledBorder("Boy")); button2.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { (new ChatPane()).show(); } }); label2=new JLabel(s1+mes_num); button=new JButton("Chat"); button.setIcon(new ImageIcon("chat.gif")); panel=new JPanel(new FlowLayout()); panel.add(button2); panel.add(label2); panel.add(button); panel.setBorder(BorderFactory.createTitledBorder("MYQQ VISION 0.1")); con.add(panel,BorderLayout.CENTER); setSize(300,210); show(); }}//////////ChatPane();class ChatPane extends JFrame{ JTextArea textarea; private Container con; private JScrollPane sp; private JPanel ctrl; private JButton send; private JButton clear; public ChatPane() { con=getContentPane(); setBounds(300,300,243,230); setTitle("ChatPane"); textarea=new JTextArea(230,190); textarea.setFont(new Font("宋体",Font.PLAIN,12)); sp=new JScrollPane(textarea); ctrl=new JPanel(new FlowLayout()); send=new JButton("Send"); send.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { try { InetAddress ads=InetAddress.getByName("10.10.111.33"); String sss=textarea.getText(); int l=sss.length(); byte b[]=sss.getBytes(); DatagramPacket gram=new DatagramPacket(b,l,ads,2001); UdpThread.udpsocket.send(gram); } catch(Exception abc) { System.out.println("&&&&&&&&&&&&&&&&&&&&&&&&&&"); } dispose(); } }); clear=new JButton("Clear"); clear.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ee) { textarea.setText(""); } }); ctrl.add(send); ctrl.add(clear); con.add(textarea,BorderLayout.CENTER); con.add(ctrl,BorderLayout.SOUTH); }} strBefore = new String(strBefore.getBytes(), "8859_1"); scjp117 JAVA的根本,是不是把类和其提供的方法学会 ~~~~~~~~真正的菜鸟问题,都进来看看哈 很重要的问题呀1 关于包的问题? 一个源码,出了三个错误,搞了好长时间搞不错了,帮忙看一下 初学java,做的头昏脑涨,麻烦高手指导一下。 坦克大战问题 SCJP模拟题哪有下载的,越多越好!!! 中位数求解 以下代码在JBuilder5可以正常运行,可是在ie却显示不出,不知是怎么回事? 请考过scjp的兄弟传授些经验呢?怎么准备,何时开考,最好看写什么书,谈谈你的考试经历。
import java.awt.*;
import java.io.*;
import javax.swing.*;
import java.awt.event.*;
import java.net.*;public class ChatMain
{
public static void main(String[] args)
{
new pframe();
UdpThread ut=new UdpThread();
ut.start();
}
}
/////////////UDPTHREAD
class UdpThread extends Thread
{
static DatagramSocket udpsocket;
public UdpThread()
{
try
{
udpsocket=new DatagramSocket(2001);
}
catch(Exception e)
{
}
}
public void run()
{
while(true)
{
try
{
byte dataBuf[]=new byte[512];
String data;
InetAddress host;
int port;
DatagramPacket recedata=new DatagramPacket(dataBuf,512);
udpsocket.receive(recedata);
data=new String(recedata.getData(),recedata.getLength());
host=recedata.getAddress();
port=recedata.getPort();
ChatPane pop=new ChatPane();
pop.textarea.setText("From:"+host+":"+port+"\n"+"MESSAGE___:"+data);
pop.show();
}
catch(Exception ec)
{
}
}
}
}
/////////////UDPTHREAD END
class pframe extends JFrame
{
private Container con;
private String s1;
private int mes_num;
private JButton button2;
private JLabel label2;
private Icon icon;
private JButton button;
private JPanel panel;
public pframe()
{
setTitle("MYQQ VISION 0.1");
con=getContentPane();
s1="New Message : ";
mes_num=0;
icon=new ImageIcon("boy.gif");
button2=new JButton(icon);
button2.setBorder(BorderFactory.createTitledBorder("Boy"));
button2.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
(new ChatPane()).show();
}
});
label2=new JLabel(s1+mes_num);
button=new JButton("Chat");
button.setIcon(new ImageIcon("chat.gif"));
panel=new JPanel(new FlowLayout());
panel.add(button2);
panel.add(label2);
panel.add(button);
panel.setBorder(BorderFactory.createTitledBorder("MYQQ VISION 0.1"));
con.add(panel,BorderLayout.CENTER);
setSize(300,210);
show();
}
}
//////////ChatPane();
class ChatPane extends JFrame
{
JTextArea textarea;
private Container con;
private JScrollPane sp;
private JPanel ctrl;
private JButton send;
private JButton clear;
public ChatPane()
{
con=getContentPane();
setBounds(300,300,243,230);
setTitle("ChatPane");
textarea=new JTextArea(230,190);
textarea.setFont(new Font("宋体",Font.PLAIN,12));
sp=new JScrollPane(textarea);
ctrl=new JPanel(new FlowLayout());
send=new JButton("Send");
send.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
try
{
InetAddress ads=InetAddress.getByName("10.10.111.33");
String sss=textarea.getText();
int l=sss.length();
byte b[]=sss.getBytes();
DatagramPacket gram=new DatagramPacket(b,l,ads,2001);
UdpThread.udpsocket.send(gram);
}
catch(Exception abc)
{
System.out.println("&&&&&&&&&&&&&&&&&&&&&&&&&&");
}
dispose();
}
});
clear=new JButton("Clear");
clear.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ee)
{
textarea.setText("");
}
});
ctrl.add(send);
ctrl.add(clear);
con.add(textarea,BorderLayout.CENTER);
con.add(ctrl,BorderLayout.SOUTH);
}
}