java与分布式.docx

上传人:b****4 文档编号:27029409 上传时间:2023-06-25 格式:DOCX 页数:27 大小:208.42KB
下载 相关 举报
java与分布式.docx_第1页
第1页 / 共27页
java与分布式.docx_第2页
第2页 / 共27页
java与分布式.docx_第3页
第3页 / 共27页
java与分布式.docx_第4页
第4页 / 共27页
java与分布式.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

java与分布式.docx

《java与分布式.docx》由会员分享,可在线阅读,更多相关《java与分布式.docx(27页珍藏版)》请在冰豆网上搜索。

java与分布式.docx

java与分布式

1、所谓socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。

应用程序通常通过"套接字"向网络发出请求或者应答网络请求。

操作javasocket时用到的最多的三个方法为:

accept():

主要用于服务器端产生“阻塞”,等待客户端的链接请求,并且返回一个客户端的Socket实例;

getInputStream():

方法主要用来获得网络连接输入,同时返回一个InputStream对象实例;

getOutputStream():

方法和上面的getInputStream相反。

2、一般要建立Java的Socket连接,应首先明确服务器端和客户端,服务器端使用ServerSocket监听指定的端口,使用accept等待客户端请求,链接链接,开始会话、完成会话后,关闭链接。

(注意,一般socket的关闭都应该是服务器端来进行的,后面说);客户端使用Socket对网络中的某个服务器的某个端口发出链接请求,连接成功,开始会话,会话完成,Socket关闭。

2、示例代码:

服务器端:

复制代码代码如下:

packagecom.icer.server;

importjava.io.BufferedReader;

importjava.io.IOException;

importjava.io.InputStreamReader;

importjava.io.OutputStream;

importjava.io.PrintWriter;

import.ServerSocket;

import.Socket;

/**

 *Server

 * 

 *@authorIcer

 * 

 */

publicclassServer{

   privateServerSocketss;

   privateSockets;

   privateBufferedReaderbr;

   privatePrintWriterpw;

   publicServer(){

       try{

               ss=newServerSocket(10000);

               System.out.println("Serverisstarting...");

               s=ss.accept();

               br=newBufferedReader(newInputStreamReader(s.getInputStream()));

               pw=newPrintWriter(s.getOutputStream(),true);

               Stringline=br.readLine();

               System.out.println(line);

               pw.println("yourwordis:

"+line);

               //pw.println("helloworld");

               br.close();

               pw.close();

       }catch(IOExceptionie){

           ie.printStackTrace();

       }

   }

   publicstaticvoidmain(String[]args)throwsException{

       newServer();

   }

}

客户端:

复制代码代码如下:

packagecom.icer.client;

importjava.io.BufferedReader;

importjava.io.File;

importjava.io.FileInputStream;

importjava.io.IOException;

importjava.io.InputStreamReader;

importjava.io.PrintWriter;

import.Socket;

/**

 *Client

 *@authorIcer

 *

 */

publicclassClient{

   privateSockets;

   privateBufferedReaderbr;

   //privateBufferedReaderline;

   privatePrintWriterpw;

   privateStringline="";

   publicClient(){

       try{

           s=newSocket("127.0.0.1",10000);

           pw=newPrintWriter(s.getOutputStream(),true);

           br=newBufferedReader(newInputStreamReader(s.getInputStream()));

           pw.println("hello");

           line=br.readLine();

           System.out.println(line);

           br.close();

           pw.close();

       }catch(IOExceptionie){

           ie.printStackTrace();

       }

   }

   publicstaticvoidmain(String[]args)throwsException{

       newClient();

   }

}

这篇文章主要介绍了java实现socket从服务器连续获取消息的示例,需要的朋友可以参考下

服务器端我们用软件模拟,是一个很小巧的软件,下载软件NetAssist:

第二步贴上我们客户端的代码:

复制代码代码如下:

importjava.io.DataInputStream;

importjava.io.IOException;

import.Socket;

publicclassClient{  

   publicstaticfinalStringIP_ADDR="192.168.3.65";//服务器地址   

   publicstaticfinalintPORT=8080;//服务器端口号    

   staticStringtext=null;

 publicstaticvoidmain(String[]args)throwsIOException{    

       System.out.println("客户端启动..."); 

       Socketsocket=null;  

       socket=newSocket(IP_ADDR,PORT);    

       while(true){    

           try{  

               //创建一个流套接字并将其连接到指定主机上的指定端口号  

               //读取服务器端数据    

               DataInputStreaminput=newDataInputStream(socket.getInputStream());    

    byte[]buffer;

    buffer=newbyte[input.available()];

    if(buffer.length!

=0){

    System.out.println("length="+buffer.length);

    //读取缓冲区

    input.read(buffer);

    //转换字符串

    Stringthree=newString(buffer);

    System.out.println("内容="+three);

    }

           }catch(Exceptione){  

               System.out.println("客户端异常:

"+e.getMessage());   

           } 

       }    

   }

可以看到打印结果如下:

length表示消息的长度

复制代码代码如下:

客户端启动...

length=27

内容=

好了,一个socket客户端我们就完成了,这个是可以一直接收服务器发过来的消息的。

javasocket编程实例代码讲解

作者:

字体:

[增加 减小]类型:

转载

这篇文章主要介绍了javasocket编程示例讲解,大家参考使用吧

1、所谓socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄。

应用程序通常通过"套接字"向网络发出请求或者应答网络请求。

操作javasocket时用到的最多的三个方法为:

accept():

主要用于服务器端产生“阻塞”,等待客户端的链接请求,并且返回一个客户端的Socket实例;

getInputStream():

方法主要用来获得网络连接输入,同时返回一个InputStream对象实例;

getOutputStream():

方法和上面的getInputStream相反。

2、一般要建立Java的Socket连接,应首先明确服务器端和客户端,服务器端使用ServerSocket监听指定的端口,使用accept等待客户端请求,链接链接,开始会话、完成会话后,关闭链接。

(注意,一般socket的关闭都应该是服务器端来进行的,后面说);客户端使用Socket对网络中的某个服务器的某个端口发出链接请求,连接成功,开始会话,会话完成,Socket关闭。

2、示例代码:

服务器端:

复制代码代码如下:

packagecom.icer.server;

importjava.io.BufferedReader;

importjava.io.IOException;

importjava.io.InputStreamReader;

importjava.io.OutputStream;

importjava.io.PrintWriter;

import.ServerSocket;

import.Socket;

/**

 *Server

 * 

 *@authorIcer

 * 

 */

publicclassServer{

   privateServerSocketss;

   privateSockets;

   privateBufferedReaderbr;

   privatePrintWriterpw;

   publicServer(){

       try{

               ss=newServerSocket(10000);

               System.out.println("Serverisstarting...");

               s=ss.accept();

               br=newBufferedReader(newInputStreamReader(s.getInputStream()));

               pw=newPrintWriter(s.getOutputStream(),true);

               Stringline=br.readLine();

               System.out.println(line);

               pw.println("yourwordis:

"+line);

               //pw.println("helloworld");

               br.close();

               pw.close();

       }catch(IOExceptionie){

           ie.printStackTrace();

       }

   }

   publicstaticvoidmain(String[]args)throwsException{

       newServer();

   }

}

客户端:

复制代码代码如下:

packagecom.icer.client;

importjava.io.BufferedReader;

importjava.io.File;

importjava.io.FileInputStream;

importjava.io.IOException;

importjava.io.InputStreamReader;

importjava.io.PrintWriter;

import.Socket;

/**

 *Client

 *@authorIcer

 *

 */

publicclassClient{

   privateSockets;

   privateBufferedReaderbr;

   //privateBufferedReaderline;

   privatePrintWriterpw;

   privateStringline="";

   publicClient(){

       try{

           s=newSocket("127.0.0.1",10000);

           pw=newPrintWriter(s.getOutputStream(),true);

           br=newBufferedReader(newInputStreamReader(s.getInputStream()));

           pw.println("hello");

           line=br.readLine();

           System.out.println(line);

           br.close();

           pw.close();

       }catch(IOExceptionie){

           ie.printStackTrace();

       }

   }

   publicstaticvoidmain(String[]args)throwsException{

       newClient();

   }

}

Java基于Tcp协议的socket编程实例

投稿:

shichen2014字体:

[增加 减小]类型:

转载

这篇文章主要介绍了Java基于Tcp协议的socket编程实例,较为详细的分析了socket编程客户端与服务器端的具体实现步骤与使用技巧,具有一定的参考借鉴价值,需要的朋友可以参考下

本文实例讲述了Java基于Tcp协议的socket编程方法,分享给大家供大家参考。

具体分析如下:

以下是一对一的通信编程实现,后续会继续学习一个服务器监听多个客户端的实现。

这里用到的主要步骤如下:

第一步:

以特定端口(如4800)新建socket对象

第二步:

以系统输入设备构造BufferedReader对象,该对象用于接收系统键盘输入的字符

第三步:

以socket对象得到输出流来构造PrintWriter

第四步:

以socket对象得到输入流来构造相应的BufferedReader对象,该对象用于接收server端发送过来的信息

我理解到的关闭socket:

先开的后关闭,socket最后关闭。

以下是客户端的代码实现:

复制代码代码如下:

packagecom.fan.socket;

importjava.io.*;

import.Socket;

publicclassSocketClient{

publicstaticvoidmain(String[]args)throwsIOException{

try{

Socketsocket=newSocket("127.0.0.1",4800);

System.out.println("clientstart...");

//向本机的4800端口发出客户请求

BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));

//由系统标准输入设备构造BufferedReader对象

PrintWriterwrite=newPrintWriter(socket.getOutputStream());

//由Socket对象得到输出流,并构造PrintWriter对象

BufferedReaderin=newBufferedReader(newInputStreamReader(socket.getInputStream()));

//由Socket对象得到输入流,并构造相应的BufferedReader对象

Stringreadline;

readline=br.readLine();//从系统标准输入读入一字符串

while(!

readline.equals("end")){

//若从标准输入读入的字符串为"end"则停止循环

write.println(readline);

//将从系统标准输入读入的字符串输出到Server2

write.flush();

//刷新输出流,使Server马上收到该字符串

System.out.println("Client:

"+readline);

//在系统标准输出上打印读入的字符串

System.out.println("Server:

"+in.readLine());

//从Server读入一字符串,并打印到标准输出上

readline=br.readLine();//从系统标准输入读入一字符串

}//继续循环

write.close();//关闭Socket输出流

in.close();//关闭Socket输入流 

socket.close();//关闭Socket 

}catch(Exceptione){

System.out.println("cannotlistento:

"+e);//出错,打印出错信息

}

}

}

服务端代码实现:

复制代码代码如下:

packagecom.fan.socket;

importjava.io.*;

import.ServerSocket;

import.Socket;

publicclassSocketService{

publicstaticvoidmain(String[]args)throwsIOException{

SocketServicesocketService=newSocketService();

socketService.oneServer();

}

publicvoidoneServer(){

try{

ServerSocketserver=null;

try{

server=newServerSocket(4800);

System.out.println("serverstartisok...");

//创建一个ServerSocket在端口4800监听客户请求

}catch(Exceptione){

System.out.println("cannotlistento:

"+e);

//出错,打印出错信息

}

Socketsocket=null;

try{

socket=server.accept();

//使用accept()阻塞等待客户请求,有客户

//请求到来则产生一个Socket对象,并继续执行

}catch(Exceptione){

System.out.println("Error."+e);

//出错,打印出错信息

}

Stringline;

BufferedReaderin=newBufferedReader(newInputStreamReader(socket.getInputStream()));

//由Socket对象得到输入流,并构造相应的BufferedReader对象

PrintWriterwriter=newPrintWriter(socket.getOutputStream());

//由Socket对象得到输出流,并构造PrintWriter对象

BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));

//由系统标准输入设备构造BufferedReader对象

System.out.println("Client:

"+in.readLine());

//在标准输出上打印从客户端读入的字符串

line=br.readLine();

//从标准输入读入一字符串

while(!

line.equals("end")){

//如果该字符串为"bye",则停止循环

writer.println(line);

//向客户端输出该字符串

writer.flush();

//刷新输出流,使Client马上收到该字符串

System.out.println("Server:

"+line);

//在系统标准输出上打印读入的字符串

System.out.println("Client:

"+in.readLine());

//从Client读入一字符串,并打印到标准输出上

l

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 外语学习 > 英语学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1