黑马程序员技术交流社区
标题:
关于Socket编程的问题
[打印本页]
作者:
wuhyoung
时间:
2014-5-27 07:50
标题:
关于Socket编程的问题
public class TestDemo4 {
public static void main(String[] args) throws Exception{
new Thread(new Client()).start();
new Thread(new Server()).start();
}
}
class Server implements Runnable
{
public void run()
{
try {
rever();
} catch (Exception e) {
e.printStackTrace();
}
}
public void rever() throws Exception
{
ServerSocket ss = new ServerSocket(10001);
Socket s = ss.accept();
InputStream is = s.getInputStream();
int ch = -1;
while((ch = is.read())!=-1)
{
System.out.print((char)ch);
}
/* OutputStream os = s.getOutputStream();
s.shutdownOutput();
String http = "这是服务器端协议";
os.write(http.getBytes());*/
}
}
class Client implements Runnable
{
public void run()
{
try {
sender();
} catch (Exception e) {
e.printStackTrace();
}
}
public void sender() throws Exception
{
String str = "这是客户端的协议";
InetAddress ia = InetAddress.getLocalHost();
Socket s = new Socket(ia,10001);
OutputStream os = s.getOutputStream();
os.write(str.getBytes());
//s.shutdownInput();
InputStream is = s.getInputStream();
int ch = -1;
while((ch = is.read())!=-1)
{
System.out.print((char)ch);
}
}
}
复制代码
这段代码为什么传递的数据是乱码?
作者:
wuhyoung
时间:
2014-5-27 10:01
xmvper 发表于 2014-5-27 10:00
问题就在服务端的这句话 System.out.print((char)ch);,你是一个字节的接收和写入,因为每个汉字有两个字 ...
嗯,谢谢,很有道理
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2