浅谈Socket编程及Java实现[Java编程]
本文“浅谈Socket编程及Java实现[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
Java是一种可用于举行网络编程的语言,它供应了两种功效强盛的网络支持机制:URL拜候网络资源的类和用Socket通讯的类,来满意差别的要求.一是URL用于拜候Internet网上资源的利用;另一种是针对client/server(客户端/服务器)情势的利用以及实现某些特别的协议的利用,它的通讯历程是基于TCP/IP协议中传输层接口socket实现的.本文想简单的介绍一下Socket编程的Java实现办法.
客户基于服务器之间利用的大部份通讯组件都是基于socket接口来实现的.Socket是两个程序之间举行双向数据传输的网络通讯端点,有一个地址和一个端口号来标识.每个服务程序在供应服务时都要在一个端口举行,而想利用该服务的客户机也必须衔接该端口.Socket因为是基于传输层,所以它是对比原始的通讯协议机制.通过Socket的数据表现情势为字节俭信息,因此通讯双方要想完成某项具体的利用则必须按双方约定的方法举行数据的格局化和注释,我们可以看出利用Socket编程对比麻烦,但是它具有更强的机动性和更遍及的利用范畴.
有些朋友会问,客户机/服务器工作的情势毕竟是什么样的呢?好,下面我想结合一张图来介绍一下它们的工作情势.
那么Java利用程序是若何实现上述历程的呢?java.net包中有两个类Socket和ServerSocket,辨别用于在客户机和服务器上成立Socket通讯.
让我们先来看看客户段程序编写的流程:
1、首先调用Socket类的构造函数,以服务器的指定的IP地址或指定的主机名和指定的端口号为参数,成立一个Socket流,在成立Socket流的历程中包含了向服务器恳求成立通讯衔接的历程实现.
2、成立了客户端通讯Socket后.便可以利用Socket的办法getInputStream()和getOutputStream()来成立输入/输出流.这样,利用Socket类后,网络输入输出也转化为利用流对象的历程.
3、利用输入输出流对象的呼应办法读写字节俭数据,因为流衔接着通讯所用的Socket,Socket又是和服务器端成立衔接的一个端点,因此数据将通过衔接从服务器得到或发向服务器.这时我们便可以对字节俭数据按客户端和服务器之间的协议举行处理,完成双方的通讯任务.
4、待通讯任务完毕后,我们用流对象的close()办法来关闭用于网络通讯的输入输出流,在用Socket对象的close()办法来关闭Socket.
下面,我想通过一个简单的例子来进一步介绍一下客户端程序的编写
代码一:
import java.io.*;
import java.net.*;
public class SocketCommunicationClient
{
public static void main(String[] args)
{
try{
Socket clientSocket =new Socket ("mice",9000);//成立一个流Socket并与主机mice上的端口9000相衔接
OutputStream output =clientSocket.getOutputStream();//向此Socket写入字节的一个输出流
DataInputStream input=new DataInputStream(clientSocket.getInputStream());
file://成立新的数据输入流以便从指定的输入流中读出数据
int c;
String response;
while (( c= System.in.read())!=-1)//从屏幕上承受输入的字符串,并且分化成一个个字符
{
output.write((byte)c);
if(c==' ')//假如字符为回车,则输出字符串缓冲
{
output.flush();
response=input.readLine();
System.out.println("Communication:"+response);
}
}
output.close();
input.close();
clientSocket.close();
} catch (Exception e){
System.err.println("Exception :"+e);
}
}
}
以上是“浅谈Socket编程及Java实现[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |