我試圖在客戶端和服務器之間實現TCP發送和接收程序。他們交換信息。不斷使用循環。客戶端首先發送消息。沒有循環,程序工作,但循環,它沒有。下面是節目:套接字編程客戶端服務器java
public static void main(String[] args) {
// SERVER
try
{
ServerSocket s = new ServerSocket(11);
Socket s1 = null;
int i=0;
while (true)
{
s1 = s.accept();
BufferedReader b = new BufferedReader(new InputStreamReader(s1.getInputStream()));
PrintWriter p = new PrintWriter(new OutputStreamWriter(s1.getOutputStream()));
String m;
while ((m=b.readLine())!=null)
{
i++;
System.out.print(m);
p.print("reply"+i);
}
}
}catch(IOException e){}
}
public static void main(String[] args) throws IOException {
// CLIENT
Socket s = new Socket("192.168.100.3",11);
int i = 0;
PrintWriter p = new PrintWriter(new OutputStreamWriter(s.getOutputStream()));
p.print("msg"+i);
BufferedReader b = new BufferedReader(new InputStreamReader(s.getInputStream()));
while (true){
PrintWriter p1 = new PrintWriter(new OutputStreamWriter(s.getOutputStream()));
BufferedReader b1 = new BufferedReader(new InputStreamReader(s.getInputStream()));
String m;
while((m=b1.readLine())!=null)
{
System.out.print(m);
p1.print("msg"+i);
}
i++;
p1.flush();
}
}
您是否在p.print(「reply」+ i)後嘗試刷新; ? – andrucz
nope,我會嘗試一下,讓你知道 – ali
我認爲問題是關閉套接字..在while(true)循環中每次迭代之後關閉套接字,這就是爲什麼msg不被髮送和接收。如果我在循環後關閉套接字,eclipse給我一個錯誤 – ali