永发信息网

java 利用socket机制从客户端读取从服务器发来的消息

答案:2  悬赏:40  手机版
解决时间 2021-04-25 02:25

客户端读取服务器发来的消息(相应报文+应答内容),把相应报文(HTTP/1.0 200 OK,Content-Type: text/html,只打这两行就行)显示在客户端的命令行,正式的内容(html,txt,jpg这三种)作为文件保存在客户端,该怎么写呢?

我对java各种流什么的很迷糊 不会写 大家帮我写一个getResponse()函数吧,实现上面说的功能

最佳答案

Socket s = new Socket(InetAddress.getLocalHost(), 8080);
OutputStreamWriter osw = new OutputStreamWriter(s.getOutputStream());
StringBuffer sb = new StringBuffer();
sb.append("GET /HttpStream/gb2312.jsp HTTP/1.1\r\n");
sb.append("Host: localhost:8088\r\n");
sb.append("Connection: Keep-Alive\r\n");
//注,这是关键的关键,这里一定要一个回车换行,表示消息头完,不然服务器会等待
sb.append("\r\n");
osw.write(sb.toString());
osw.flush();



定义一个读流的方法


private static String readLine(InputStream is) throws IOException {
ArrayList lineByteList = new ArrayList();
byte readByte;
int total = 0;

do {
readByte = (byte) is.read();
lineByteList.add(Byte.valueOf(readByte));
} while (readByte != 10);


byte[] tmpByteArr = new byte[lineByteList.size()];
for (int i = 0; i < lineByteList.size(); i++) {
tmpByteArr[i] = ((Byte) lineByteList.get(i)).byteValue();
}
lineByteList.clear();

return new String(tmpByteArr);
}
}




对于文件的保存就是文件流的操作 这里的buffer就是你往文件里写的内容。



System.out.print("输入要保存文件的内容:");
int count, n = 512;
byte buffer[] = new byte[n];
// 读取标准输入流
count = is.read(buffer);//这里的is就是socket获取到的
// 创建文件输出流对象
FileOutputStream os = new FileOutputStream("WriteFile.txt");
// 写入输出流
os.write(buffer, 0, count);
// 关闭输出流
os.close();
System.out.println("已保存到WriteFile.txt!");

全部回答

服务端

PrintWriter out = new PrintWriter(Socket.getOutputStream());

out.print("要在客户端获取的内容");

out.flush();

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
衣衫衣饰地址有知道的么?有点事想过去
求高人帮忙设计一下“荀旭盼”的姓名藏头诗
爱爱讽刺人是狗的句子,教师在母亲去世时嚎啕
魔域取个战士名字
怎么自制补水面膜?
查找一首粤语歌曲?
QQ宠物 藏宝图
穿越火线帐号在哪个文件夹
网球宝贝的绝技是什么哦
浐灞区城管电话
几道初一的英文题。会的进来帮下
80后都处在一种怎样的状态下?
霾形成的自然原因,雾霾的人为原因和自然原因
谁推荐一些有节奏的、激烈的、好听的歌?
电脑这样配置好吗
推荐资讯
帮推荐一下北京站附近有什么便宜的小旅馆?10
房胜强 这3字是多少笔画?
我18日上午10点办的3天抢车位管家,什么时候
求fw190战斗机的详细性能数据
谁知道现在星空卫视播的卡通海贼王的开头曲?
魔兽RPG热血传奇5.1特别版
恒久家园这个地址在什么地方,我要处理点事
请问NOKIA E72安装NOKIA的地图,怎么样能把地
诺基亚6120c为什么会开机后几秒钟后关机、
八月房产销售口号,销售团队口号
拜托网友们了,怎样让他爱上我?
为什么原来的用户能切换到新的,新的切换不到
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?