Java语言中能使用的网络功能1--接受网络数据
2013-09-12 23:21
246 查看
最近在研究Java网络编程,将自己的心得记录下来,方便自己和大家,汤姆涛要加油~~
以实例为基础,尝试设计一个能够接受网络数据的程序,采用TCP与特定的计算机端口相连,从而接收数据。
利用的库为用于IO的java.io,用于网络编程的java.net,定义一个ReadNet类。
思路:
用InputStream对象接收数据,根据指定的端口生成socket,用循环读取数据,读取完毕后关闭连接,注意每步的异常处理
代码如下:
import java.io.*;
import java.net.*;
public class javanet {
public static void main(String[] args) {
byte[] buff = new byte[1024];
Socket readsocket = null;//连接服务器的socket
InputStream instr = null;//读取数据对象
boolean cont = true;
//对指定的端口,生成socket
//生成instr对象,准备读取数据
try
{
readsocket = new Socket(args[0], Integer.parseInt(args[1]));
instr = readsocket.getInputStream();
}
catch(Exception e){
System.err.println("can't find file");
System.exit(1);
}
//数据读取,通过循环完成,这是文件IO时常用的手法
while(cont)
{
try{
int n = instr.read(buff);
System.out.write(buff,0,n);
}
catch(Exception e){
cont = false;
//读取完时,cont变为false
}
}
//完成操作后关闭连接
try{
instr.close();
}
catch(Exception e){
System.err.println("net error");
System.exit(1);
}
}
}
注意:运行该程序要传入两个参数,一个是服务器地址此处是args[0],另一个是端口号,此处是args[1]。
该程序能够建立与服务器的联系,因此称为网络客户端程序,要真正实现数据的读取,还必须在服务器运行一个程序响应客户端的连接请求,在接受请求后想客户端发送连接时间信息。该程序在以后给出,假设为netclock。
运行Readnet的计算机要和运行netclock的程序网络连接,当然,同一台计算机也可以运行,启动两个Dos命令窗口分别运行即可,但是不利于验证网络功能了。
另外,在java语言中,从键盘或文件中读取数据与从网络端口中读取数据可以采用极为相似的方法处理,因此我们得到启示
java语言对键盘,屏幕,文件和网络上所有设备的读取可以采用近似相同的方法处理。
生成socket的方法很多,在此程序中,采用传递DNS名指定主机和端口号两个参数的方法生成socket。
以实例为基础,尝试设计一个能够接受网络数据的程序,采用TCP与特定的计算机端口相连,从而接收数据。
利用的库为用于IO的java.io,用于网络编程的java.net,定义一个ReadNet类。
思路:
用InputStream对象接收数据,根据指定的端口生成socket,用循环读取数据,读取完毕后关闭连接,注意每步的异常处理
代码如下:
import java.io.*;
import java.net.*;
public class javanet {
public static void main(String[] args) {
byte[] buff = new byte[1024];
Socket readsocket = null;//连接服务器的socket
InputStream instr = null;//读取数据对象
boolean cont = true;
//对指定的端口,生成socket
//生成instr对象,准备读取数据
try
{
readsocket = new Socket(args[0], Integer.parseInt(args[1]));
instr = readsocket.getInputStream();
}
catch(Exception e){
System.err.println("can't find file");
System.exit(1);
}
//数据读取,通过循环完成,这是文件IO时常用的手法
while(cont)
{
try{
int n = instr.read(buff);
System.out.write(buff,0,n);
}
catch(Exception e){
cont = false;
//读取完时,cont变为false
}
}
//完成操作后关闭连接
try{
instr.close();
}
catch(Exception e){
System.err.println("net error");
System.exit(1);
}
}
}
注意:运行该程序要传入两个参数,一个是服务器地址此处是args[0],另一个是端口号,此处是args[1]。
该程序能够建立与服务器的联系,因此称为网络客户端程序,要真正实现数据的读取,还必须在服务器运行一个程序响应客户端的连接请求,在接受请求后想客户端发送连接时间信息。该程序在以后给出,假设为netclock。
运行Readnet的计算机要和运行netclock的程序网络连接,当然,同一台计算机也可以运行,启动两个Dos命令窗口分别运行即可,但是不利于验证网络功能了。
另外,在java语言中,从键盘或文件中读取数据与从网络端口中读取数据可以采用极为相似的方法处理,因此我们得到启示
java语言对键盘,屏幕,文件和网络上所有设备的读取可以采用近似相同的方法处理。
生成socket的方法很多,在此程序中,采用传递DNS名指定主机和端口号两个参数的方法生成socket。
相关文章推荐
- iOS—网络实用技术OC篇&网络爬虫-使用java语言抓取网络数据
- 服务器使用Gzip压缩数据,加快网络传输(Java 例子)
- 使用java语言爬取网络图片并下载到本地
- java使用http get以及post方式读取网络数据
- Java网络编程(13):使用Socket类接收和发送数据
- 高性能数据序列化库,可序列化为binary,也可序列化为json,支持C++ java python php objectc 语言,兼容json数据格试,可以互相转换,跨语言交换数据,网络传输,远程调
- JAVA入门.零基础学Java语言 MOOC 第6周 使用对象(基本数据类型的包裹类型对象) 第7周 函数
- 使用netty进行服务端网络编程及数据高效分发功能实现
- java语言基础入门——使用键盘输入字符功能
- 服务器使用Gzip压缩数据,加快网络传输(Java 例子)
- [原]使用Fiddler捕获java的网络通信数据
- Java字节序(不同语言中的网络数据传输时字节序列转换)
- java使用webmagic实现网络爬虫功能(二)
- java网络编程(一)使用TCP协议完成客户端与服务端的数据传递
- 使用Java实现网络传输数据的压缩.
- Java网络编程从入门到精通(34):读写缓冲区中的数据---使用get和put方法按顺序读写单个数据
- Android中使用Java8 新增语言功能
- Java字节序(不同语言中的网络数据传输时字节序列转换)
- Java基础知识强化之网络编程笔记16:Android网络通信之 使用Http的Get方式读取网络数据(基于HTTP通信技术)
- 【 网络爬虫】java 使用Socket, HttpUrlConnection方式抓取数据