[问题] 关于Socket连线接收字串

楼主: SuperEel (尖头鳗)   2016-03-30 22:54:34
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.Socket;
public class ClientThread extends Thread
{
private boolean m_bIsRuning;
private Socket m_socket= null;;//和服务器端进行连线
private BufferedWriter bw; //取得网络输出串流
private BufferedReader br; //取得网络输入串流
public ClientThread()
{
m_bIsRuning = true;
}
public void run()
{
super.run();
while(m_bIsRuning)
{
try {
m_socket = new Socket("192.168.1.2",1234);
bw = new BufferedWriter( new OutputStreamWriter(m_socket.getOutputStream()));
br = new BufferedReader(new InputStreamReader(m_socket.getInputStream()));
while(m_socket.isConnected())
{
if(br.readLine() != null)
System.out.println(br.readLine());
}
bw.close();
br.close();
m_socket.close();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
小弟我是这方面的新手
以上的我写的范例程式
当我使用这个Thread时
如果下bw.write和bw.flush,电脑Server端是收的到的
但上面的程式码跑到br.readLine()时就整个停住没有往下跑,
也没有进到exception里
想请问一下各位大大
哪边有问题呢??
作者: abccbaandy (敏)   2016-03-30 23:15:00
你server没传东西吧?
楼主: SuperEel (尖头鳗)   2016-03-30 23:16:00
如果没传的话,卡在那边是正常的吗?
作者: abccbaandy (敏)   2016-03-30 23:16:00
印象中readLine会等读到资料才会往下跑
作者: jacky75113 (crazydream)   2016-03-30 23:55:00
改用read()呢 readline似乎都会这样
作者: y3k (激流を制するは静水)   2016-03-31 00:12:00
readLine是确定对方是传文件才会稳 不然很容易卡在那边建议你改用read(byte[] buffer)
作者: tctzzz (tctzzz)   2016-03-31 19:17:00
之前遇过readline 第一个封包收不到,会等到第二个把第一个挤下来,然后在4.x会,5.x以上不会= =

Links booklink

Contact Us: admin [ a t ] ucptt.com