java服务器端与客户端的问题,我想在两台电脑上运行。比如另一台电脑上运行服务器端,我这边运行客户端

为什么我这边的客户端老是连接不上服务器端的,客户端里面的IP填的是另一台电脑的IP地址。请问要怎么样才能连接上来,在dos窗口也能聊天。
代码如下:
服务器端:
import java.net.*;
import java.io.*;
public class TCPServer {

public static void main(String[] args) {
try{
ServerSocket ss = new ServerSocket(5550);
Socket s = ss.accept();
System.out.println("一个客户端已连接上来");
BufferedReader bw = new BufferedReader(new InputStreamReader(s.getInputStream()));
System.out.println("客户端说:"+bw.readLine());
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
PrintWriter pw = new PrintWriter(s.getOutputStream());
String line = br.readLine();
while(!line.equals("bye")){
pw.println(line);
pw.flush();
System.out.println("客户端说:"+bw.readLine());
line = br.readLine();
}
s.close();
br.close();
bw.close();
pw.close();
ss.close();
//System.exit(0);
}catch(Exception e){
e.printStackTrace();
}
}
}
客户端代码如下:
import java.io.*;
import java.net.*;
public class TCPClient {

public static void main(String[] args) {
try{
Socket s = new Socket("192.168.1.104",5550);
BufferedReader bw = new BufferedReader(new InputStreamReader(System.in));
BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
PrintWriter pw = new PrintWriter(s.getOutputStream());
String st = bw.readLine();
while(!st.equals("bye")){

pw.println(st);
pw.flush();
System.out.println("服务器端说:" +br.readLine());
st = bw.readLine();
}
br.close();
bw.close();
bw.close();
s.close();
}catch(Exception e){
e.printStackTrace();
}
}
}

你的服务器端无限循环接受信息那段有问题,你只能readline到一次,我把你的代码稍微改了下,测试能进行聊天:

服务端:

import java.net.*; import java.io.*;  public class TCPServer {   public static void main(String[] args) {  try {  ServerSocket ss = new ServerSocket(5550);  Socket s = null;  while (true) {  s = ss.accept();  BufferedReader br = new BufferedReader(new InputStreamReader(s  .getInputStream()));  System.out.println("一个客户端已连接上来");  String msg = "";   PrintWriter pw = new PrintWriter(s.getOutputStream());   while ((msg=br.readLine())!=null) {  System.out.println("22222");  System.out.println("客户端说:" + msg);  pw.println("我是服务器,你刚才说了:" + msg);  pw.flush();  if (msg.equals("bye")) {  break;  }  }  pw.close();  ss.close();  }  } catch (Exception e) {  e.printStackTrace();  }  } }

客户端:

import java.io.*; import java.net.*;  public class TCPClient {   public static void main(String[] args) {  try {   Socket s = new Socket("127.0.0.1", 5550);  BufferedReader bw = new BufferedReader(new InputStreamReader(  System.in));  BufferedReader br = new BufferedReader(new InputStreamReader(s  .getInputStream()));  PrintWriter pw = new PrintWriter(s.getOutputStream());  String st = bw.readLine();  while (!st.equals("bye")) {  pw.println(st);  pw.flush();  System.out.println("服务器端说:" + br.readLine());  st = bw.readLine();  }  br.close();  bw.close();  bw.close();  s.close();  } catch (Exception e) {  e.printStackTrace();  } finally {   }  } }

还有socket变成楼主可以用mina做服务端哦~非常好用的东东~呵呵~

追问

我是想在两台机上测试喔

追答

可以啊~你改ip就行了~没问题的~

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-04-29
把服务器端的防火墙关了本回答被提问者采纳
第2个回答  2012-04-27
你先在本机上试一下来确认是不是IP地址的问题,程序粗略的看了下没什么问题追问

本机上测试没问题,怎么回事,我就想把把服务端在另一台机上运行等待客户端连接,然后在我的机子上运行客户端。

第3个回答  2012-04-27
server打开没!追问

Server已打开,客户端连接不上

追答

那就是你的IP没有改好!两台都要改!

第4个回答  2012-04-27
程序没错的,
相似回答