服务器端是C++开发的,Java开发客户端。客户端发送给服务器端的信息服务器那边可以收到,服务器也发出了响应,但是客户端一直阻塞,无法获取数据。不知道大伙能不能分享下这方面的经验。如果有样例程序更好。
在此先行谢过。
[code="java"]
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.net.UnknownHostException;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.channels.SocketChannel;
public class WhyNotWork {
/**
* @param args
* @throws IOException
* @throws UnknownHostException
* @throws IOException
*/
public static void main(String[] args) throws UnknownHostException {
String sendString = Header.get() + "hello ";
Socket socket = null;
try {
socket = new Socket("192.168.10.3", 5555);
} catch (IOException e) {
e.printStackTrace();
}
if (socket.isConnected()) {
System.out.println("is connected");
} else {
return;
}
PrintWriter writer = null;
BufferedReader reader = null;
try {
writer = new PrintWriter(socket.getOutputStream());
reader = new BufferedReader(new InputStreamReader(socket
.getInputStream()));
writer.println(sendString.getBytes());
writer.flush();
char[] buffer = new char[1024];
while (reader.read(buffer) != -1) {
System.out.println(new String(buffer));
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (writer != null) {
writer.close();
}
if (socket != null) {
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
[/code]