1. java网络
其实dos.writeUTF("hi,hello");根本没有被执行到,原因是你的循环退出的条件是InputStream读出的内容为null,而这里除非发生异常或者网络中断,否则读到Stream结尾的时候read方法会得到-1,也不是null。因此Server端就不会退出循环。
你可以将dos.writeUTF("hi,hello");放到循环内,就可以看到客户端能够读到该信息了。
2. Java 网络编程
import java.io.*;
import java.net.*;
public class Sendserver
{
public static int port = 3333;
public static void main(String[] args) throws IOException
{
ServerSocket s = new ServerSocket(port);
Socket d= s.accept();
System.out.println("客户端连接成功");
DataInputStream input = new DataInputStream(d.getInputStream());
int bufferSize = 8192;
byte[] buf = new byte[bufferSize];
DataOutputStream fileOut = new DataOutputStream(new BufferedOutputStream(
new BufferedOutputStream(new FileOutputStream(
"2.mp3"))));
while (true)
{
int read = 0;
if (input != null)
read = input.read(buf);
if (read == -1)
break;
byte[] temp=new byte[read];
for(int i=0;i<read;i++)
temp[i]=buf[i];
fileOut.write(temp);
}
fileOut.close();
System.out.println("传送完毕");
}
}
import java.io.*;
import java.net.*;
public class SendClient
{
public static void main(String[] args) throws UnknownHostException, IOException
{
try{
DataInputStream iinput = new DataInputStream(new BufferedInputStream(
new FileInputStream("1.mp3")));
InetAddress addr = InetAddress.getByName("localhost");
Socket f= new Socket(addr,3333);
OutputStream output=f.getOutputStream();
int bufferSize = 8192;
byte[] buf = new byte[bufferSize];
while (true)
{
int read = 0;
if (iinput != null)
read = iinput.read(buf);
if (read == -1)
break;
byte[] temp=new byte[read];
for(int i=0;i<read;i++)
temp[i]=buf[i];
output.write(temp);
output.flush();
}
iinput.close();
output.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
改动相当大,你自己看看吧。
3. java为什么适合网络开发
Java
JAVA 是 Sun 公司推出的新一代面向对象的程序设计语言, 由于它与生俱来的一些特性, 比如: 平台无关, 多线程, 内置 URL 操作, 高度安全性等等, 使得它特别适合于网络应用程序的开发. 经过多年的发展, JAVA 已经成为这方面的主流编程语言. 而且, 随着 Internet 的崛起, JAVA 将会有更大的发展.
在 JAVA 流行之前, C++ 已经流行很久了, 几乎在第三代编程语言中起统治地位, 初学 JAVA 的人会觉得两者很像. 事实上, 可以说 JAVA 就是脱胎与 C++, 但同时又做了相当大的改变, 使其更加符合网络编程的需要.
JAVA几个重要的特性:
Easy :Java的语法比C++的相对简单,另一个方面就是Java能使软件在很小的机器上运行,基础解释其和类库的支持的大小约为40kb,增加基本的标准库和线程支持的内存需要增加125kb。
分布式 :Java带有很强大的TCP/IP协议族的例程库,Java应用程序能够通过URL来穿过网络来访问远程对象,由于servlet机制的出现,使Java编程非常的高效,现在许多的大的web server都支持servlet。
OO :面向对象设计是把重点放在对象及对象的接口上的一个编程技术.其面向对象和C++有很多不同,在与多重继承的处理及Java的原类模型。
健壮特性 :Java采取了一个安全指针模型,能减小重写内存和数据崩溃的可能型。
安全 :Java用来设计网路和分布系统,这带来了新的安全问题,Java可以用来构建防病毒和防攻击的System.事实证明Java在防毒这一方面做的比较好。
中立体系结构 :Java编译其生成体系结构中立的目标文件格式可以在很多处理器上执行,编译器产生的指令字节码(Javabytecode)实现此特性,此字节码可以在任何机器上解释 执行。
所以它较慢。
可移植性 :Java中对基本数据结构类型的大小和算法都有严格的规定所以可移植性很好。
多线程 :Java处理多线程的过程很简单,Java把多线程实现交给底下操作系统或线程程序完成.所以多线程是Java作为服务器端开发语言的流行原因之一 。
Applet和servlet :能够在网页上执行的程序叫Applet,需要支持Java的浏览器很多,而applet支持动态的网页,这是很多其他语言所不能做到的。
引自不同网络
4. java怎么实现网络数
heritrix抓取网页
网页解析的有很多就不说了,不过最好自己写
lucene索引
首先爬虫是需要一个处理器链的,网页的抓取并非几十行代码就能实现的,因为有很多问题出
现。
1.获取网页:判断网页编码,计算网页正文位置,获取页面内url(url的过滤、缓存、存储这部分还需要线程池的优化),url的分配、及线程池的启动。
2.网页持久化。网页解析,网页中样式表、图片等下载以及网页的保存(xml和html)网页快照的生成。
3.网页的消重去噪:去掉没用的网页,如果是垂直搜索引擎则需要更多的判断,可以利用内容模板和空间向量的算法实现。
4.索引的建立及优化,主要是简历倒排索引。
你的分类基本上可以用内容模板和空间向量计算实现。
还有其他很多东西,一时间不能说细了。你想做到什么程度。(比如:空间向量的算法及结果的参考值、网页内容模板的建立。)
5. 计算机网络开发java
java是现在比较主流的开发语言,,在医疗、物流、金融等管理系统方面应用得非常多。学习一样东西有没有用要看它的使用价值,现在需要的人才不单单是会简单的编程,而且是全方面的,业务和其他能力也很重要,可以说学了java你可以做一个程序员,找到工作也没问题,但是要真正深入企业业务,要工资有所提升则还要实践一段时间,充分融入到业务中去。
6. java网络编程包含些什么
java网络编程通常包括三部分TCP/IP , UDP ,URL ;socket只是其中的一个套接字。web,jsp与上面一点关系也没有,上面是j2se的内容。下面则是j2ee内容。web是一个服务,而jsp是一种技术。实在找关系的话,web包括了jsp.
7. java网络环境如何设置
JDK安装完成以后,如果你没有设置好环境变量,那就必须切换到BIN目录才能执行javac java等命令.
如果想在任意路径下都可以执行JAVAC等命令,那就必须配置一下系统环境变量.如图
我的是WIN7,你的系统不一样,就自己找吧
在"计算机"上右键,属性,左侧有一个高级系统设置,点开.
8. java是网络编程语言吗
SEO 布布为你解答:java[是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaEE, JavaME, JavaSE)的总称。Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显着优势和广阔前景。
上面可能楼主看的不是很懂,我跟你简答的解释一下,JAVA这款软件是一个脚本语言,举个例子说,许愿墙、什么动画效果,有的就是用JAVA 来实现的,不懂可以继续追问哦
9. java网络编程
bw.flush();
10. java网络流的问题
问题出在这里buf=str.getBytes();
这一句把getBytes() 返回的引用赋给了buf所以buf 指向的已经不是原来的new byte[100];的内存空间了,那么这个byte 数组的长度和内容都不是原来的那样了。
--JAVA 中除了基本类型 (int double char ... 是值传递之外,其它的都是引用传递,了解C或C++的朋友都很容易理解,java 里所有的对象的实例都是放在它预先申请的堆内存里面的--方面它管理内存)
**************************补充********************************
你的程序结运行结果应是这样的
1,有server端On Server... I am client□□□□□□□□□□□□□□□□□□□□□□□□□□□□
2 在client端 On client... message form server...□□□□□□□□□□□□□□□□□□□□□□□□□□□□
运行的时候,要先运行server端的,不然server 和client都会处于阻塞状态。
至于为什么怎么会有这么多的小格子,是这样的,你读数据的时候应加一个记录读入长度的标记int len =in.read(bufR);
String str=new String(bufR,len);这样空格就会没有了。因为java 和C或C++不一样,C和C++string 都是一个以\0结尾 char 数组,程序从数组头读到\0就结束不管这个char 数组还有多大。java 的String 对象设计得不一样,它用两个byte 储存一个char 所以你长度为100的byte数组只能存50个字;。。。。
任何疑问
[email protected]
blog.csdn.net/shmilyhe