我写了一个SocketServer.java一个SocketClient.java,就是类似一个聊天的程序,一个客户端,一个服务器端。但是每次只能运行一个java,百度了好多也没有得到解决办法,就是想让客户端输入数据,服务器端也会显示数据。类似于QQ聊天一样,就是互相发数据,怎么办啊?
什么意思? “拖拽到eclipse项目的下面”?
追答把图标拖到eclipse项目图标那个位置,就像你把图标拖到回收站里那样拖
追问可不可以先让一个server的线程sleep一会儿再运行的?接着运行client,这样算是server在运行吗?算是同时运行吗?
追答先运行server,再运行客户端是吧?
public class SocketServer
{
static Thread s=new Thread(new Runnable() {
public void run(){
…… //这里放server的方法
}
});
public static void main(String[] args){
SocketServer.s.start();
SocketClient.c.start();
}
}
public class SocketClient
{
static Thread c=new Thread(new Runnable() {
public void run(){
try{
SocketServer.s.join();
}
catch(InterruptedException e){
e.printStackTrace();
}
……//这里放Client的方法
}
});
}
调用线程的join()方法,让server线程先启动完毕,再启动client的线程
我截了个我的工程图片 你看看就知道怎么用了
追问我知道啊,就算是分开2个项目放,也不能一个发送,一个接受,同时运行啊。。。
追答肯定是可以同时运行的啊,不然我怎么调试呢?
而且就算在一个项目里面也是可以同时运行的,如果你想查看当前你运行着哪些程序,你可以通过Console里面的Display Selected Console按钮来选择,也可以直接在Debug里面查看
额,好吧,我看进程管理器,看到那个连接已经建立了,你的项目:假如说Client发送了一条信息,Server端打印吗?
如果打印,就需要在客户端和服务器端分别打印一次,怎么样可以观察到这个打印输出的语句。
(客户端用system.in输入)
这两个输出语句你都可以在Console里面看到,只是他们显示在不同的框里面,你通过Console里面的Display Selected Console按钮就可以选择你要查看程序的运行结果了