`
kuaile863
  • 浏览: 115797 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java如何通过socket实现服务端与客户端交互

阅读更多

  刚刚开始学习如何通过socket去发送信息下边的案例也是书上的在这留下笔记

   Socket APIjava .net.Socket继承于java.lang.Object,有八个构造器,其方法并不多,下面介绍使用最频繁的三个方法,其它方法大家可以见JDK文档。

  Accept方法用于产生"阻塞",直到接受到一个连接,并且返回一个客户端的Socket对象实例。"阻塞"是一个术语,它使程序运行暂时"停留"在这个地方,直到一个会话产生,然后程序继续;通常"阻塞"是由循环产生的。

  getInputStream方法获得网络连接输入,同时返回一个InputStream对象实例。

getOutputStream方法连接的另一端将得到输入,同时返回一个OutputStream对象实例。注意:其中getInputStreamgetOutputStream方法均可能会产生一个IOException,它必须被捕获,因为它们返回的流对象,通常都会被另一个流对象使用。

 

服务端类代码:

/**

 * <p>作者 Administrator</p>

 * <p>功能描述:</p>

 * <p>创建时间:20122012-2-2上午11:06:05</p>

 */

package com.scok;

 

import java.io.DataInputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import java.io.PrintStream;

import java.net.InetAddress;

import java.net.ServerSocket;

import java.net.Socket;

/**

 * <p>作者 Administrator</p>

 * <p>功能描述:</p>

 * <p>创建时间:20122012-2-2上午11:06:05</p>

 */

/**

 * @author Administrator

 *

 */

public class ClientServer {

  public static void main(String[] args) {

           //服务器接口类

           ServerSocket sst=null;

           //套接口类

           Socket sc=null;

           

           InputStream is=null;

           OutputStream os=null;

           //dataInput为input的子类

           DataInputStream in=null;

           //printStream为output的子类

           PrintStream ps=null;

           try {

                   //构造对象端口为8000

                   sst =new ServerSocket(8000);

                   //建立套接口

                   sc=sst.accept();

                   //获取套接口的输入流

                   is=sc.getInputStream();

                   //构造数据的输入流datainput对象in

                   in=new DataInputStream(is);

                   //获取套接口的输出流

                   os=sc.getOutputStream();

                   //构造数据的输出流PrintStream对象os

                   ps=new PrintStream(os);

                   //获取客户端的IP

           InetAddress Ip=sc.getInetAddress();

           //显示ip

           System.out.println("连接地址ip:"+Ip);

           int port;

           port=sc.getPort();

           System.out.println("客户端端口"+port);

           ps.println("Welcome");

           //在in上读取一行

           String str=in.readLine();

          while(!str.equals("quit")){

                    System.out.println("客户说:"+str);

          str=in.readLine();

          } 

           System.out.println("客户离开");

           

           

           } catch (IOException e) {

                   e.printStackTrace();

         }finally{

                   //关闭

                   try {

                   is.close();

                   os.close();

                   sc.close();

                   System.exit(0);

                   } catch (IOException e) {

                            e.printStackTrace();

                   }

                   

         }

}

}

 客户端类:

 

 

 

/**

 * <p>作者 Administrator</p>

 * <p>功能描述:</p>

 * <p>创建时间:20122012-2-2上午11:18:47</p>

 */

package com.scok;

 

import java.io.DataInputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import java.io.PrintStream;

import java.net.ServerSocket;

import java.net.Socket;

import java.net.UnknownHostException;

 

/**

 * <p>作者 Administrator</p>

 * <p>功能描述:</p>

 * <p>创建时间:20122012-2-2上午11:18:47</p>

 */

/**

 * @author Administrator

 *

 */

public class Client {

public static void main(String[] args) {

 

           //套接口类

           Socket sc=null;

           InputStream is=null;

           OutputStream os=null;

           //dataInput为input的子类

           DataInputStream in=null;

           //printStream为output的子类

           PrintStream ps=null;

           String str=null;

           

           try {

                     //创建客户端接口

           sc=new Socket("192.168.12.48",8000);

           System.out.println("come to server..");

           is=sc.getInputStream();

           os=sc.getOutputStream();

           in=new DataInputStream(is);

           ps=new PrintStream(os);

           str=in.readLine();

           System.out.println("server 说"+str);

           byte bt[]=new byte[20];

           System.in.read(bt);

           String msg=new String (bt,0);

           msg=msg.trim();

           while(!msg.equals("quit")){

                     ps.println(msg);

                     System.in.read(bt);

                     msg=new String(bt,0);

                     msg=msg.trim();

           }

           //传输信息到服务端

           ps.println(msg);

           } catch (UnknownHostException e) {

                   e.printStackTrace();

         } catch (IOException e) {

                   e.printStackTrace();

         }finally{

                   //关闭

                   try {

                   is.close();

                   os.close();

                   sc.close();

                   System.exit(0);

                   } catch (IOException e) {

                            e.printStackTrace();

                   }

                   

         }

}

}

 

 

 

 

 

1
0
分享到:
评论

相关推荐

    java编写socket服务端和客户端给予cmpp3.0

    Java 编写基于 CMPP3.0 的 Socket 服务端和客户端是移动通讯领域中常见的技术实践,主要用于实现与移动运营商的短信网关进行数据交互。CMPP(China Mobile Short Message Peer-to-Peer)是中国移动制定的一种短消息...

    spring boot 整合的netty 实现的socket的服务端和客户端

    以下将详细讲解如何实现Spring Boot整合Netty的Socket服务端和客户端。 首先,我们来看服务端的实现。在`netty_server`项目中,我们需要创建一个`ServerBootstrap`实例,它是Netty服务器的核心。通过`...

    基于java socket实现的ftp客户端和服务端交互

    本项目是使用java Socket编程实现的一个简单的FTP服务器和客户端。 客户端目前实现的功能是登录,刷新,上传和下载。同时具有主动模式和被动模式两种模式。 服务器端实现的功能有登录、刷新、上传、下载、列出文件...

    java socket长连接客户端服务端(标准实例)

    ### Java Socket 长连接客户端和服务端实现 在Java中,使用Socket进行网络通信是一种非常常见的技术手段。本文将详细解读“Java Socket长连接客户端服务端(标准实例)”的相关知识点,包括其实现原理、代码解析及...

    java socket服务端和客户端

    在这个"java socket服务端和客户端"的项目中,我们可以探讨以下几个关键知识点: 1. **Socket类和ServerSocket类**: - `Socket`类代表了网络上的一个连接,它用于建立客户端到服务器的连接,并进行数据传输。通过...

    Netty实现Java服务端和C#客户端联通

    标题中的“Netty实现Java服务端和C#客户端联通”是指使用Netty作为Java服务器框架,与C#客户端(使用DotNetty库)进行通信的一种技术实现。这涉及到跨平台的网络通信,以及两个不同编程语言间的交互。 Netty是Java...

    Java服务端和客户端交互实例

    总之,这个Java服务器端和客户端交互实例是一个简单的网络通信示例,它展示了如何通过Java的Socket API实现两端之间的数据传输。通过学习和实践此类程序,开发者可以更好地掌握网络编程的关键技术和原理。

    Java远程控制服务端和客户端源代码

    Java远程控制服务端和客户端源代码是利用Java内置的网络编程和GUI自动化工具包来实现的一种跨网络的交互功能。这种技术的核心在于`java.net.*`和`java.awt.robot.*`这两个包,它们分别提供了网络通信和模拟用户操作...

    socket实现服务端客户端通信

    在这个项目中,我们通过Socket实现了一个简单的服务端和客户端通信系统,该系统能够实时显示客户端的数量以及每个客户端的IP地址,为网络应用程序提供了基本的连接和数据传输功能。 在服务端,首先创建一个...

    服务端和客户端,java,C++实现代码

    Java以其跨平台的特性而闻名,它的Socket编程接口使得实现服务端和客户端通信变得相对简单。在Java中,服务端通常创建一个ServerSocket监听特定的端口,等待客户端的连接请求。一旦连接建立,服务器就可以通过Socket...

    j2me socket 服务端与 客户端聊天

    总结来说,"j2me socket 服务端与 客户端聊天" 示例项目通过 J2ME 的 Socket API 实现了手机与服务器的实时聊天功能。理解并掌握这些基本的网络编程概念对于开发移动设备上的网络应用至关重要。同时,项目的测试过程...

    HP用SOCKET实现(客户端---服务端)

    本文将深入解析如何利用PHP中的Socket编程技术实现客户端与服务端之间的通信,通过分析提供的代码示例,我们将理解其工作原理、关键步骤以及在实际应用中的注意事项。 ### Socket编程基础 Socket编程是一种用于...

    基于Android的简单Socket服务端与客户端

    在这个项目中,"基于Android的简单Socket服务端与客户端"实现了两个Android应用程序:一个作为服务端,另一个作为客户端,它们通过Socket进行数据交换。 首先,我们要理解Socket的工作原理。Socket是网络编程的基本...

    java_socket服务端和客户端编程.doc

    - 通过`Socket`的输入/输出流与客户端交互。 - 完成交互后关闭`Socket`。 - **客户端**: - 创建`Socket`实例并连接到服务器端。 - 通过`Socket`的输入/输出流与服务器交互。 - 完成交互后关闭`Socket`。 ###...

    socket实现简单聊天室功能 服务端和客户端代码

    然后,通过Socket的输入输出流与服务器进行交互。 1. 连接服务器 ```java Socket socket = new Socket("localhost", 8080); // "localhost"是服务器地址,8080是服务器端口 ``` 2. 发送和接收消息 ```java ...

    mina框架中socket使用,有服务端和客户端。

    MINA框架中的Socket服务端和客户端通过Socket接口实现数据的发送和接收,服务端创建监听Socket,等待客户端的连接请求;客户端则通过Socket连接到服务端,进行数据交互。 3. **服务端实现**:在MINA中,服务端通常...

    Socket服务端与客户端通信实例

    在本实例中,我们将深入探讨Socket服务端与客户端的通信过程,了解其基本原理和应用。 首先,Socket是Internet协议族的一部分,它为应用程序提供了低级别的网络通信接口。在TCP/IP模型中,Socket位于传输层,可以...

    基于c/s架构的JAVA聊天程序 ,服务端和客户端都有

    1. **Socket编程**:Java的java.net.Socket和ServerSocket类用于建立客户端和服务器之间的连接,实现数据的双向传输。 2. **多线程**:服务器通常需要同时处理多个客户端的请求,因此会用到多线程技术,每个客户端...

Global site tag (gtag.js) - Google Analytics