zhiji ding~~~~~~~~~只要能做出来,不够分还可以再加啊。
解决方案 »
- 郁闷啊,identifier of an instance of com.services.dao.Address was altered from 44 to
- webdriver元素定位失败的处理
- 数据传到后台后所有“+”都变成“ ”?
- java web 里面 class.forname() 的 .forname()为什么出不来?
- 疯了 彻底疯了 jsf
- 急,求助Hashtable的get()方法问题,谢谢!
- 学习JSP遇到的问题,请大家指点
- The processing instruction target matching "[xX][mM][lL]" is not allowed怎么办?
- 大家看看我这个怎么获得文件的类型
- 有关 java bean
- 急,求助?新装的2003,连不上sqlserver数据库?
- 如何初始化ActionForm元素值
byte[] bar = new byte[320 * 240 * 3];
dis.read(bar);
}
还是在这个循环中读么?这个循环中读的dis流是在第几次的时候生成的呀?你是不是该把 is=socket.getInputStream();
bis = new BufferedInputStream(is);
dis = new DataInputStream(bis);也放到While 循环中来?
import java.net.*;
import java.io.*;public class Server{
private ServerSocket ss;
private Socket socket;
private BufferedReader in;
private PrintWriter out; public Server(){
try{
ss = new ServerSocket(2003);
while (true){
socket = ss.accept();
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out = new PrintWriter(socket.getOutputStream(),true); // String line = in.readLine();
out.println("you input is :" + in.readLine());
out.close();
in.close();
socket.close();
}
//ss.close();
}
catch(IOException e){
e.printStackTrace();
}
} public static void main(String[] args){
Server aa=new Server();
}
}-------------------------------
Client.javaimport java.io.*;
import java.net.*;public class Client
{
Socket socket;
BufferedReader in;
PrintStream out; public Client(){
try{
socket = new Socket("192.168.0.66", 2003);
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out = new PrintStream(socket.getOutputStream());
BufferedReader line = new BufferedReader(new InputStreamReader(System.in));// if(line.readLine().equals("exit"))
String aa=line.readLine();
out.print(aa);
out.flush();
//line.close();
//out.close();
//in.close();
//socket.close();
}
catch (IOException e){
e.printStackTrace();
}
} public static void main(String[] args){
Client bb=new Client();
}
}
import org.apache.commons.logging.LogFactory;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.impl.LogFactoryImpl;
import org.xml.sax.SAXException;import java.net.ServerSocket;
import java.net.Socket;
import java.io.IOException;
import java.io.File;import com.dream.mess.http.ServerConnection;
import com.dream.mess.container.WebContainer;/**
* Created by IntelliJ IDEA.
* @version 1.0
* @author TaoJianFeng
*/
public class Server
{
public static final String SERVER_HOME = "mess.server.home"; private static Server server = null; private String home = null;
private ServerConfig config = null; private Log log = LogFactory.getLog("Server"); public synchronized static Server getServer()
{
if(server == null)
server = new Server();
return server;
}
public String getServerName()
{
return "Mess/1.0";
}
public int getServerPort()
{
return config.getPort();
}
private Server()
{
if(System.getProperty(LogFactoryImpl.LOG_PROPERTY) == null)
System.setProperty(LogFactoryImpl.LOG_PROPERTY, "org.apache.commons.logging.impl.Log4JLogger"); home = System.getProperty(SERVER_HOME);
File file = new File(home);
if(file.exists() && file.isDirectory())
{
home = file.getAbsolutePath();
}
else throw new RuntimeException("Server home not set");
log.info("ServerHome: " + home); try
{
config = ServerConfig.getServerConfig(home);
}
catch (SAXException e)
{
throw new RuntimeException(e.getMessage());
}
catch (IOException e)
{
throw new RuntimeException(e.getMessage());
} log.info("Server configuration read");
}
public ServerConfig getConfig()
{
return config;
}
public String getHome()
{
return home;
}
public void run()
{ log.info("Loading Web Applications......");
//container.load();
WebContainer.getInstance().initResource();
WebContainer.getInstance().startDeployer();
ServerSocket ss = null;
try
{
log.info("Starting Mess Server......");
ss = new ServerSocket(Server.getServer().getConfig().getPort());
log.info("Mess Server is listening port: " + String.valueOf(Server.getServer().getConfig().getPort()));
while(true)
{
Socket socket = ss.accept();
ServerConnection con = new ServerConnection(socket);
con.start(); } }
catch (IOException e)
{
e.printStackTrace(); //To change body of catch statement use Options | File Templates.
}
}
public static void main(String[] args)
{
Layout layout = new PatternLayout("%d %-5p [%c{1}] - %m%n");
Logger.getRootLogger().addAppender(new ConsoleAppender(layout, ConsoleAppender.SYSTEM_OUT));
Logger.getRootLogger().setLevel(Level.INFO); Runtime.getRuntime().addShutdownHook(new Thread()
{
public void run()
{
Log log = LogFactory.getLog(Server.class);
log.info("Shutdown!");
}
}); Server server = Server.getServer();
server.run(); }
}
其实我当时写程序时也是参考别人的程序来写的。只是学东西只学了一半,还剩一半没学。真是惭愧。听大家这么一说,我终于知道自己还差哪一半没学业了。:P其实我参考的程序,它运用的是server-push技术。所以在while循环中没有生成新的socket。它是用新的传来的数据去替代原来缓存区中的旧的数据。所以只要读回原来的输入流就行了。呵呵,只怪当时没有研究透,现在看了各位的回复才晃然大悟。谢了。分不够的话,可以私下和我联系。分嘛,好说。呵呵。:)