日期:2014-05-20 浏览次数:20997 次
InputStream Is,is = null;
------解决方案--------------------
InputStream Is,is = null; 没有赋值
------解决方案--------------------
简单的写了一个程序,估计能完成要求。有一些细节方面没有做处理。
package houlei.test; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.Socket; /** * 推荐使用两个线程来处理,本代码是单线程的程序。 * * 该类创建于 2009-6-12 上午02:11:49 * @version 1.0.0 * @author 侯磊 */ public class RecordIOInfo { public static final String Exit = "exit"; public static void main(String[] args) throws Exception{ Socket socket = new Socket("192.168.180.20",23); InputStream cIn = System.in; InputStream sIn = socket.getInputStream(); OutputStream sOut = socket.getOutputStream(); OutputStream fOut = new FileOutputStream("D:\\save.dat"); boolean running = true; try{ while(running){ if(cIn.available()>0){//将控制台的信息传输给Socket sOut.write(cIn.read()); } if(sIn.available()>0){//将Socket传过来的数据存储到文件当中 fOut.write(sIn.read()); } Thread.sleep(10); } }catch(IOException e){ e.printStackTrace(); }finally{ fOut.close(); socket.close(); } } }
------解决方案--------------------
哦。忘了每次write后要flush了。还有那个常量Exit在这里没有用。
------解决方案--------------------
共同学习了 up
------解决方案--------------------
1.你的需求不明确。缺少太多的信息。
2.如果只是想传文件,那用FTP会更直接一些,或者HTTP下载也可以。
3.如果即要服务端有执行客户端命令的功能,又要有传输文件(或数据)的功能,而且还不使用FTP,那必须要写个协议才行。
4.第3种情况,编程复杂度太大。你出300分,估计也没几个人帮你做。
5.我写的代码也只是抛砖引玉,仅供楼主参考。
------解决方案--------------------
比较汗~~~
你想实现MSN等的聊天记录功能,那也得有具体的聊天程序才行啊,没这样的聊天程序,怎么帮你实现日志的记录功能?
不会是要我给你编一个聊天程序吧?
C/S架构的聊天通讯程序,其实是一个比较复杂的程序。
其中涉及到大致4个过程,信息的显示,信息的编码组包,信息的传输,以及信息的拆包解码。
楼主想要实现聊天内容的记录功能,打算记录哪个过程的聊天信息?
其实,我也是比较郁闷滴。
------解决方案--------------------
楼主应该把问题说我更详细点
------解决方案--------------------
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
/**
* 推荐使用两个线程来处理,本代码是单线程的程序。
* <p/>
* 该类创建于 2009-6-16 下午03:42:50
*
* @version 1.0.0
* @author 9sky
*/
public class RecordIOInfo {
private static String Host = "127.0.0.1";// 服务端IP
private static int Port = 4567;// 服务端监听端口
private static String FileName = "D:\\save.dat";
public static void main(String[] args) throws Exception {
Socket socket = new Socket(Host, Port);
InputStream cIn = System.in;
InputStream sIn = socket.getInputStream();
OutputStream sOut = socket.getOutputStream();
OutputStream fOut = new FileOutputStream(FileName);
boolean running = true;
try {
while (running) {
if (cIn.available() > 0) {// 将控制台的信息传输给Socket
sOut.write(cIn.read());
sOut.flush();
}
if (sIn.available() > 0) {// 将Socket传过来的数据存储到文件当中
fOut.write(sIn.read());
fOut.flush();
}
Thread.sleep(10);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
fOut.close();
socket.close();
}
}
}