懂Socket的朋友请进来帮忙看看哪里有错误

xcl1984611 2007-04-15 11:07:41
目的:实现多用户和服务器端通信

这个是我的服务器端的SocketServer,编译没有问题
import java.net.*;
import java.io.*;

public class MultiUser extends Thread
{
/**
* @param args
*/
private Socket client;

public MultiUser(Socket c)
{
this.client=c;
}

public void run()
{
try
{
BufferedReader in=new BufferedReader(new InputStreamReader(client.getInputStream()));
PrintWriter out=new PrintWriter(client.getOutputStream());

while(true)
{
String str=in.readLine();
System.out.println(str);
out.println("has receive....");
out.flush();
if(str.equals("end"))
break;
}
client.close();
}
catch(IOException ex)
{
}
finally
{
}
}

public static void main(String[] args) throws IOException
{
ServerSocket server=new ServerSocket(5678);
while(true)
{
MultiUser mu=new MultiUser(server.accept());
mu.start();
}
}
}

这是我的客户端的server 编译有问题
import java.net.*;
import java.io.*;

public class Client {

/**
* @param args
*/
static Socket server;

public static void main(String[] args) throws Exception
{
server=new Socket(InetAddress.getLocalHost(),5678);
BufferedReader in=new BufferedReader(new InputStreamReader(server.getInputStream()));
PrintWriter out=new PrintWriter(server.getOutputStream());
BufferedReader wt=new BufferedReader(new InputStreamReader(System.in));

while(true)
{
String str=wt.readLine();
out.println(str);
out.flush();
if(str.equals("end"))
{
break;
}
System.out.println(in.readLine());
}
server.close();
}
}
编译运行的时候 客户端就提示出错 错误提示如下:
Exception in thread "main" java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(Unknown Source)
at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at Client.main(Client.java:13)

哪个朋友能帮我看看 是哪里出了问题啊
...全文
243 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhaochunhui 2007-04-16
  • 打赏
  • 举报
回复
.........
xcl1984611 2007-04-16
  • 打赏
  • 举报
回复
谢谢楼上的朋友 我知道我是哪里弄错了

我在一台电脑上 我是先编译的客户端 然后才编译的服务器端

这样的话顺序有问题,编译客户端的时候并不存在服务器端 所以就出现问题了
suxq126 2007-04-16
  • 打赏
  • 举报
回复
没有错误,请先运行MultiUser,这是服务器端。如果你先运行Client(这是客户端),就会发生你说的错误。
ker79 2007-04-16
  • 打赏
  • 举报
回复
5678端口是不是已经被占用了
zhaochunhui 2007-04-16
  • 打赏
  • 举报
回复
你的服务器端程序和客户端程序是在一台机器上吗?

如不是你把server=new Socket(InetAddress.getLocalHost(),5678);
中的InetAddress.getLocalHost()改为服务器端程序所在机器的地址。

如果是 看看是不是防火墙把5678端口给屏蔽了

你的程序在我这没什么问题~!
wuhuawu09 2007-04-16
  • 打赏
  • 举报
回复
没做过socket,语言,理论上没什么问题。。按楼上的试试看。。。
liujs1026 2007-04-16
  • 打赏
  • 举报
回复
你的服务器端程序和客户端程序是在一台机器上吗?
如果不是,你把server=new Socket(InetAddress.getLocalHost(),5678); 中的InetAddress.getLocalHost()改成服务端的IP,如果是改成127.0.0.1试试看?
insiku 2007-04-16
  • 打赏
  • 举报
回复
没有问题

保证server启动的情况下运行client
Jakio 2007-04-16
  • 打赏
  • 举报
回复
可惜不懂java,帮不了你

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧