(1)我需要实现的是建立一次连接之后,便可以以阻塞的方式往socket中读写数据;在网上查了下,似乎没有类似代码;
敲了段书上的例子,socket读写是通过bufferReader,readline&&printwriter.println(),但总是ANR报错,而且不能传输中文;
}
最好贴下操作代码;谢谢;
敲了段书上的例子,socket读写是通过bufferReader,readline&&printwriter.println(),但总是ANR报错,而且不能传输中文;
}
最好贴下操作代码;谢谢;
服务端的读取代码如下:
while(true){
msg=bufferReader.readline();//这边并没有阻塞;
//或者 msg = dataInputStream.readUTF();
}
服务端对每个客户端连接都有开线程处理,代码如下:
public void run() {
try {
dataInputStream = new DataInputStream(
localSocket.getInputStream());
dataOutputStream = new DataOutputStream(
localSocket.getOutputStream()); while (true) {
String msg;
try {
msg = dataInputStream.readUTF();
if (!msg.equals("connect***")) {
System.out.println("msg" + msg); // 打印客户端发来的消息
System.out.println("ip:" + localSocket.getInetAddress()); //
dataOutputStream.writeUTF("Hello 客户端!");
System.out.println("*********************");
// 像客户端发送消息
}
// 打印客户端IP
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} // 读取一个字符串
}
}