已经用SocketServer实现了服务器端和客户端的简单通讯,想再继续修改此程序,请教各位! 不是线程的问题,现在只是要实现双方不断的发送消息,直到Cilent发送"exit",然后结束之间对话! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 给你一段代码希望对你有用while(line!=null && !exitflag){line=line.trim();if (line.equalsIgnoreCase("'quit'") ){//如果是退出命令,则关闭当前套接字上的输入输出流in.close();out.flush();out.close();return; //退出当前的服务逻辑线程单元} while(line!=null && !exitflag){line=line.trim();if (line.equalsIgnoreCase("exit") ){//如果是退出命令,则关闭当前套接字上的输入输出流in.close();out.flush();out.close();return; //退出当前的服务逻辑线程单元} 我又想了想,只要在客户端循环就可以了,但是不知道怎么加程序是这样:import java.net.*;import java.io.*;public class myClient2{ public static void main( String[ ] args ) { try { Socket s = new Socket( "192.168.0.88", 5656 ); PrintStream out = new PrintStream( s.getOutputStream( ) ); BufferedReader in = new BufferedReader( new InputStreamReader( s.getInputStream( ) ) ); BufferedReader std = new BufferedReader( new InputStreamReader( System.in ) ); String x = in.readLine( ); //如果是在这之前加( while(x....)),就会提示你x变量没有定义之类的 System.out.println( x ); String x1 = std.readLine( ); out.println( x1 ); out.close( ); s.close( ); in.close( ); } catch( IOException e ) { } }}请高手,帮我简单实现我要的目的,小弟万分感谢!!!!! String x;while(!((x = in.readLine()).equals("exit"))){ ...}若不用线程只能一问一答 楼上的方法也不对,还是问一次,答一次就完了,而且还有错误Exception in thread "main" java.lang.NullPointerException at myClient2.main(myClient2.java:15) 服务器接收要新建一个现成来去通信Server 改一改 while( true ) { Socket s = ss.accept( ); new MySession(s).start(); }增加一个MySession.javapublic class MySession extends Thread{ private Socket s; public MySession(Socket s){ this.s = s; } public void run(){ //在这里才开始通信 InputStream is = s.getInputStream(); OutputStream os = s.getOutputStream(); //............... }} 客户端和服务端的in.readLine部分都改成String line;whlie ((line = in.readLine) != null) { ..........} org.apache.http包在那下载??急急急!!!!!! 面试题 一个参数如何在两页面交换 关于JSP的问题 Struts学习,有没有好的方法? 各位仁兄,求助,急阿!万分感谢! JBoss3.2.3版本中的HypersonicSQL哪里去了? 一个初学者的蠢问题,谢谢 请大家帮忙看看这段ejb-ql有什么问题! 关于myBatis高级映射的,跪求大神回复 有什么办法可以在改动了action以后不需要重启tomcat呢? tomcat下jsp改名称后不能访问???
while(line!=null && !exitflag){
line=line.trim();
if (line.equalsIgnoreCase("'quit'") )
{//如果是退出命令,则关闭当前套接字上的输入输出流
in.close();
out.flush();
out.close();
return; //退出当前的服务逻辑线程单元
}
line=line.trim();
if (line.equalsIgnoreCase("exit") )
{//如果是退出命令,则关闭当前套接字上的输入输出流
in.close();
out.flush();
out.close();
return; //退出当前的服务逻辑线程单元
}
程序是这样:import java.net.*;
import java.io.*;public class myClient2
{
public static void main( String[ ] args )
{
try
{
Socket s = new Socket( "192.168.0.88", 5656 );
PrintStream out = new PrintStream( s.getOutputStream( ) );
BufferedReader in = new BufferedReader( new InputStreamReader( s.getInputStream( ) ) );
BufferedReader std = new BufferedReader( new InputStreamReader( System.in ) );
String x = in.readLine( ); //如果是在这之前加( while(x....)),就会提示你x变量没有定义之类的
System.out.println( x );
String x1 = std.readLine( );
out.println( x1 );
out.close( );
s.close( );
in.close( );
}
catch( IOException e )
{
}
}
}请高手,帮我简单实现我要的目的,小弟万分感谢!!!!!
...
}若不用线程只能一问一答
Exception in thread "main" java.lang.NullPointerException
at myClient2.main(myClient2.java:15)
while( true )
{
Socket s = ss.accept( );
new MySession(s).start();
}增加一个MySession.java
public class MySession extends Thread{
private Socket s;
public MySession(Socket s){
this.s = s;
}
public void run(){
//在这里才开始通信
InputStream is = s.getInputStream();
OutputStream os = s.getOutputStream();
//...............
}
}
String line;
whlie ((line = in.readLine) != null) {
..........
}