黑马程序员技术交流社区
标题:
下面的代码为什么会中文乱码呢?求大虾解释
[打印本页]
作者:
黑马唐浩
时间:
2012-2-5 09:02
标题:
下面的代码为什么会中文乱码呢?求大虾解释
本帖最后由 魑_魅 于 2012-2-5 09:22 编辑
import java.net.*;
import java.io.*;
class send
{
public static void main(String[] args)throws Exception
{
DatagramSocket socket = new DatagramSocket();
BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
String line = null;
while ((line = bufr.readLine()) != null)
{
if(line.equals("over"))
break;
DatagramPacket packet = new DatagramPacket(line.getBytes(),line.length(),InetAddress.getByName("192.168.1.105"),7878);
socket.send(packet);
}
bufr.close();
socket.close();
}
}
class rec
{
public static void main(String[] args)throws Exception
{
DatagramSocket socket = new DatagramSocket(7878);
while (true)
{
byte[] buf = new byte[1024];
DatagramPacket packet = new DatagramPacket
(buf,buf.length);
socket.receive(packet);
String ip = packet.getAddress().getHostAddress();
String data = new String(packet.getData(),0,packet.getLength());
int port = packet.getPort();
System.out.println("from " + ip + " :" + port +"\t" + data );
}
}
}
public class Demo
{
public static void main(String[] args)throws Exception
{
}
}
复制代码
作者:
马欢
时间:
2012-2-5 09:11
19行
line.length()应该是line.getBytes().length
因为string的.length()方法得到的是字符串长度。
作者:
黑马唐浩
时间:
2012-2-5 09:16
马欢 发表于 2012-2-5 09:11
19行
line.length()应该是line.getBytes().length
因为string的.length()方法得到的是字符串长度。 ...
谢谢,现在明白了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2