`
lichaobao
  • 浏览: 47510 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

利用Socket和ServerSocket模拟用户-服务器通讯

    博客分类:
  • java
阅读更多

客户端:

       public class ClientSocketTest {

 public static void main(String[] args) {
  try {
   //本地计算机模拟:模拟端口8888
   Socket clientSocket = new Socket("localhost", 8888);
   //得到服务器输入流
   InputStream inData = clientSocket.getInputStream();
   //建立输出流至服务器
   OutputStream outData = clientSocket.getOutputStream();
   //发送输出流
   PrintWriter toServer = new PrintWriter(outData, true);
   //键盘输入扫描
   Scanner scanner = new Scanner(System.in);
   //服务器输入扫描
   Scanner data = new Scanner(inData);
   //得到服务器第一行输入信息
   String heading = data.nextLine();
   //打印信息
   System.out.println(heading);
   //键盘输入循环
   while(scanner.hasNextLine()){
    //得到键盘输入信息
    String line = scanner.nextLine();
    //传送至服务器
    toServer.println(line);
    //得到服务器回答信息
    String fromServer = data.nextLine();
    //打印信息
    System.out.println(fromServer);
    if(fromServer.equals("Bye!")){
     System.out.println("Now is disconnection...");
     break;
    }
   }
   clientSocket.close();
  } catch (UnknownHostException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }

 }

}

服务端:

          public class ServerSocketTest {

 public static void main(String[] args) {
  System.out.println("Welcome the server is running...");
  try {
   //服务器监听端口
   ServerSocket serverSocket = new ServerSocket(8888);
   //接受客户端连接
   Socket fromClient = serverSocket.accept();
   System.out.println("Connection to the client...");
   //得到客户端输入流
   InputStream inData = fromClient.getInputStream();
   //得到客户端输出流
   OutputStream outData = fromClient.getOutputStream();
   //创建输出流
   PrintWriter toClient = new PrintWriter(outData, true);
   toClient.println("Type quit to STOP");
   //客户端输入扫描
   Scanner sc = new Scanner(inData);
   //
   while(sc.hasNextLine()){
    //得到客户端输入信息
    String line = sc.nextLine();
    if(line.equalsIgnoreCase("quit")){
     serverSocket.close();
     toClient.println("Bye!");
     break;
    }
    toClient.println(line.toUpperCase());
   }
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }
}

0
0
分享到:
评论

相关推荐

    Socket模拟服务器_Socket模拟服务器_

    在本文中,我们将深入探讨Socket模拟服务器的相关知识点,以及如何实现网络通讯数据的接收和处理。 首先,Socket是一种网络通信协议接口,它允许应用程序通过网络进行双向通信。在Java中,Socket类和ServerSocket类...

    Android使用webView和ServerSocket模拟客户端和服务端通讯

    本教程将探讨如何利用`webView`和`ServerSocket`在Android设备上模拟客户端和服务端的通讯。`webView`通常用于展示网页内容,而`ServerSocket`则在Java中用于创建服务器端套接字,允许我们监听并接收来自客户端的...

    客户端-服务器 模拟聊天程序

    在Java编程中,我们可以利用Socket编程来实现客户端和服务器之间的通信。Socket是TCP/IP协议族的一部分,提供了进程间通信的能力,使得两个网络应用程序可以通过TCP连接进行双向通信。在聊天程序中,服务器端通常会...

    c#socket 模拟本机和客户端聊天通讯(自己和自己通讯)

    在本文中,我们将深入探讨如何使用C#的Socket类来模拟本地主机与客户端之间的聊天通信。C# Socket编程是网络编程的重要组成部分,它允许我们创建网络应用,进行数据的发送和接收。在这个过程中,我们将专注于如何...

    基于socket java 语言网络通讯机制和程序设计

    ### 基于Socket Java 语言网络通讯机制和程序设计 #### 摘要与引言 本文旨在探讨Java语言在网络通讯中的应用及其基于Socket的编程机制。随着互联网技术的飞速发展,网络编程已经成为软件开发中不可或缺的一部分。...

    java基础练习 模拟B\S服务器

    我的csdn java第“22.1 网络编程:软件结构、网络通信协议、UDP与TCP协议、网络编程三要素、客户端Socket类、客户端ServerSocket类、客户上传文件到服务器、模拟B\S服务器“练习代码

    android 模拟两个手机端 的socket通讯

    本篇文章将详细探讨如何在Android环境中模拟两个手机端的Socket通讯。 首先,我们需要理解Socket的基本概念。Socket在计算机网络中相当于一个出入口,它允许程序发送和接收数据。在TCP/IP协议栈中,Socket分为两种...

    JAVA socket 模拟聊天室

    本项目"JAVA socket 模拟聊天室"旨在通过Socket技术,构建一个简单的客户端与服务器之间的即时通讯系统,让双方可以实时发送和接收消息。下面我们将深入探讨Socket的基本概念、工作原理以及如何使用Java实现一个简单...

    模拟出很多SOCKET服务器

    "模拟出很多SOCKET服务器"的场景通常出现在测试、实验或者系统设计中,目的是为了模拟多设备环境,以便更好地理解和优化服务器处理并发连接的能力。在这个项目中,我们将深入探讨如何在一台计算机上创建并运行多个...

    客户机服务器通信模拟

    总结来说,"客户机服务器通信模拟"项目利用Java的Socket编程,模拟了客户端和服务器之间的文本通信。这个过程涉及到了网络编程的基本概念,如Socket接口、I/O流以及命令行程序的执行。理解并掌握这些知识对于深入...

    java Socket实现简单模拟HTTP服务器

    3. 模拟 HTTP 服务器:使用 Java Socket 可以模拟简单的 HTTP 服务器,来处理客户端的请求和响应。服务器可以监听客户端的请求,解析请求头,返回响应体。 4. HTTP 请求头解析:HTTP 请求头包含了请求的方法、URL、...

    Java Socket 通信服务与客户端完整示例

    - 数据传输完毕后,关闭Socket和ServerSocket。 3. **客户端实现** - 创建Socket实例,指定服务器的IP地址和端口号,建立连接。 - 获取Socket的输入输出流,进行数据的读写操作。 - 数据传输完成后,关闭Socket...

    Android中Socket通信

    本项目模拟了一个简单的客户端-服务器(CS)聊天室,让我们深入了解一下Android中的Socket通信及其实现。 首先,理解Socket的基本概念至关重要。Socket是网络通信中的一个端点,它允许两个应用程序通过网络进行数据...

    socket测试工具sokit-1.3-win32-enu

    作为服务端,Sokit允许开发者模拟各种类型的网络服务器,如TCP服务器或UDP服务器。开发者可以设置不同的监听端口,接收来自客户端的连接请求,进而发送或接收数据。这在测试客户端应用程序与服务器的交互时非常有用...

    Android下socket模拟http server

    在Android平台上,我们可以利用Socket编程来模拟一个简单的HTTP服务器,以提供本地文件系统中的资源,如HTML文件,供外部设备(如浏览器)访问。这个过程涉及到Android系统的网络权限管理、Socket编程以及HTTP协议的...

    Postman模拟请求

    通过下载名为"Postman-win64-6.0.10-Setup.exe"的安装包,Windows用户可以安装Postman,开始利用其丰富的功能进行API开发和测试工作。不断迭代更新的Postman,不仅提升了开发者的效率,也降低了接口测试的复杂性,...

    Socket调用服务器bat

    在Java中,Socket编程主要涉及两个类:`java.net.Socket`(客户端)和`java.net.ServerSocket`(服务器端)。客户端创建Socket实例,连接到服务器的特定端口,然后通过输入/输出流进行数据交换。服务器端创建...

    摄像头通过socket发送图像到服务器

    通常,这样的测试会模拟服务器端的行为,接收来自客户端的图像数据,并检查其完整性。 总之,"摄像头通过socket发送图像到服务器"涉及Android的摄像头API、网络编程、图像处理和错误处理等多个技术领域。通过理解并...

    Socket模拟客户端与服务端

    本文将深入探讨如何利用Socket在TCP协议下模拟客户端与服务端的交互,通过"WindowsApplication1"和"WindowsApplication2"这两个文件名,我们可以推测这是两个在Windows平台上运行的应用程序,一个作为客户端,另一个...

    C#和java 之间基于Socket的通信

    本话题主要探讨了两种常用编程语言——Java和C#之间如何利用Socket进行通信。Socket是网络编程的基本接口,允许应用程序通过网络发送和接收数据。以下是关于"Java和C#之间基于Socket的通信"的详细知识点: 1. **...

Global site tag (gtag.js) - Google Analytics