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

Java的单线程Socket通信

阅读更多

package  com.wangtong.network;   
  
import  java.io.BufferedReader;   
import  java.io.IOException;   
import  java.io.InputStreamReader;   
import  java.io.PrintWriter;   
import  java.net.ServerSocket;   
import  java.net.Socket;   
  
public   class  ServerSocket {   
  
     public   static   void  main(String[] args) {   
         try  {   
            createServerSocket();   
        }  catch  (IOException e) {   
             // TODO Auto-generated catch block   
            e.printStackTrace();   
        }   
    }   
  
     private   static   void  createServerSocket()  throws  IOException {   
        ServerSocket serverSocket =  new  ServerSocket( 8189 );   
        Socket socket = serverSocket.accept(); // wait for client connection   
         while  ( true ) {   
            BufferedReader in =  new  BufferedReader( new  InputStreamReader(socket   
                    .getInputStream()));   
            PrintWriter out =  new  PrintWriter(socket.getOutputStream());   
             while  ( true ) {   
                String str = in.readLine();   
                System.out.println( "server:"  + str);   
                out.println( "client receive"  + str);   
                out.flush();   
                 if  (str.equals( "exit" ))   
                     break ;   
            }   
            socket.close();   
  
        }   
    }   
  
}   
 package com.wangtong.network;
  
import  java.io.BufferedReader;   
import  java.io.IOException;   
import  java.io.InputStream;   
import  java.io.InputStreamReader;   
import  java.io.OutputStream;   
import  java.io.PrintWriter;   
import  java.net.Socket;   
import  java.net.UnknownHostException;   
import  java.util.Scanner;   
  
  
public   class  ClientSocket {   
     private   static   final  String URL =  "localhost" ;   
  
     private   static   final   int  PORT =  8189 ;   
  
  
     /**  
     * create client socket  
     *   
     * @throws IOException  
     * @throws UnknownHostException  
     *   
     */   
     private   static   void  createClientSocket()  throws  UnknownHostException,   
            IOException {   
        Socket clientSocket =  new  Socket(URL, PORT);   
        BufferedReader in =  new  BufferedReader( new  InputStreamReader(   
                clientSocket.getInputStream()));   
        PrintWriter out =  new  PrintWriter(clientSocket.getOutputStream());   
        BufferedReader wt =  new  BufferedReader( new  InputStreamReader(System.in));   
         while  ( true ) {   
            String str = wt.readLine();   
            out.println( "client send:"  + str);   
            out.flush();   
             if  (str.equals( "end" )) {   
                 break ;   
            }   
            System.out.println(in.readLine());   
        }   
        clientSocket.close();   
  
    }   
  
     public   static   void  main(String[] args) {   
  
         try  {   
            createClientSocket();   
        }  catch  (UnknownHostException e) {   
             // TODO Auto-generated catch block   
            e.printStackTrace();   
        }  catch  (IOException e) {   
             // TODO Auto-generated catch block   
            e.printStackTrace();   
        }   
    }   
}   

  转:http://wangtong40.iteye.com/blog/50628

分享到:
评论

相关推荐

    单线程与多线程socket通信

    首先,我们来详细探讨单线程Socket通信。在单线程模型中,服务器端只有一个线程处理所有客户端的连接请求。当一个客户端发起连接请求时,服务器端创建一个Socket实例,并通过这个Socket实例与客户端进行通信。这种...

    java实现简单socket通信

    Java实现的简单Socket通信是网络编程中的基础技术,主要用于设备间的双向数据传输。在这个场景中,我们有两个窗口,一个作为服务器端,另一个作为客户端,它们通过TCP协议进行通信。TCP是一种面向连接的、可靠的传输...

    Java Socket学习---单线程阻塞

    但是,对于初学者来说,理解单线程阻塞模型是学习网络编程的基础,有助于深入理解Socket通信的工作原理。 此外,源码分析可以帮助我们更好地理解Socket通信的细节,例如异常处理、连接超时、资源管理等。通过阅读和...

    java Socket 多线程

    Java Socket 多线程是网络编程中的一个重要概念,它结合了Java的并发处理能力和Socket通信技术,使得服务器能够同时处理多个客户端的连接请求。在Java中,Socket是用于在网络环境中进行双向通信的类,而多线程则允许...

    基于Java实现的socket即时通信系统

    在Java中,`java.net.Socket`和`java.net.ServerSocket`类是实现Socket通信的核心类。ServerSocket用于服务器端,监听特定端口,等待客户端的连接请求;Socket则代表客户端,它与服务器建立连接后,可以进行数据的...

    单线程Socket编程实现mysql数据读取

    在这个场景中,我们关注的是如何使用单线程Socket编程来实现从MySQL数据库中读取数据。首先,我们需要理解Socket的基本概念,然后深入探讨如何构建Socket客户端和服务器,以及如何与MySQL数据库进行交互。 **Socket...

    JAVA多线程soket通信程序,直接运行!这是我做移动短信接口的时候用到的!

    Java多线程Socket通信程序是实现并发网络通信的关键技术,特别是在构建高效、可扩展的服务器端应用时。在这个场景中,我们看到一个用于移动短信接口的解决方案,它利用了Java的多线程特性来处理来自多台电脑的并发...

    java使用socket和c++通信

    在Java中,非阻塞式Socket通信基于NIO(Non-blocking Input/Output)机制,它与传统的BIO(Blocking I/O)不同,BIO在等待数据时会阻塞线程,而NIO则允许线程在没有数据可读或可写时继续执行其他任务,从而提高系统...

    异步和多线程socket通讯

    本文将深入探讨"异步和多线程socket通讯"这一主题,基于提供的描述和标签,我们将讨论如何利用多线程和异步机制来提升socket通信的效率和响应性。 首先,Socket是一种在应用程序与网络服务之间建立连接的接口,它...

    基于java NIO的socket通信demo

    在这个“基于java NIO的socket通信demo”中,我们将探讨如何使用NIO进行服务器和客户端的Socket通信,并解决通信过程中的字符集乱码问题。 首先,我们来看`NioServer.java`。这个文件中包含了一个基于NIO的服务器端...

    java socket 单线程实现P2P通信

    简单大循环 单线程实现通信 1. TCP连接通信 2. Server先监听,等待Client连接 3. 双方都可以发"Stop!"停止通信,但此程序Client只会停止,Server可以一直监听,即断开后,Client可以再次连接 4. 不能一对多通信,...

    java单线程聊天室

    【Java单线程聊天室】是一个基础的网络通信项目,主要使用了Java的Socket编程来实现客户端与服务器端的交互。对于Java初学者而言,这是一个很好的实践案例,可以帮助理解网络编程的基本原理和Java多线程的基本概念。...

    用java实现socket通信(单交互)

    Java中的Socket通信是网络编程的基础,它允许两个应用程序通过TCP/IP进行双向通信。在这个场景下,我们讨论的是一个单交互的Socket通信实现,意味着客户端发送一个请求,服务器响应后,通信结束。以下是对这个主题的...

    java基于Socket的网络通信

    Java基于Socket的网络通信是Java编程领域中的一个重要知识点,它涉及到如何通过网络在不同设备间交换数据。Socket在计算机网络中扮演着客户端和服务器之间的桥梁角色,使得它们能够相互通信。在这个Java项目中,我们...

    socket通信,mina长连接通信

    在Java中,`java.net.Socket`类和`java.net.ServerSocket`类提供了Socket通信的基础框架。Socket通信通常涉及以下几个步骤: 1. **服务器端**:创建一个`ServerSocket`,监听指定的端口号,等待客户端的连接请求。 ...

    TCP-socket.zip_java_java Tcp _java socket _socket_socket多线程

    本压缩包文件"TCP-socket.zip"包含了一个基于Java实现的TCP Socket通信客户端和服务端,且支持多线程并发连接。这个学习资源可以帮助我们深入了解Java中的TCP Socket编程和多线程技术。 首先,让我们来看看TCP协议...

    Java Socket实现单线程通信的方法示例

    本示例将介绍如何使用Java Socket实现简单的单线程通信。 首先,我们来看服务器端(Server)的实现。服务器端需要监听特定的端口,等待客户端的连接请求。在Java中,`ServerSocket`类用于创建监听端口的服务器。...

    Android socket通信聊天,客户端+服务端

    总结来说,Android中的Socket通信涉及网络编程、多线程、数据处理等多个方面,需要综合运用Java和Android的相关知识。理解并熟练掌握Socket通信,对于开发实时交互的应用,如聊天、游戏等,至关重要。通过实践和不断...

    java 线程 socket

    Java线程和Socket是两种在Java编程中至关重要的概念,特别是在构建高性能、高并发的网络应用程序时。线程是程序中的执行流,而Socket则提供了在网络间进行进程间通信(IPC)的能力。让我们深入探讨这两个主题及其在...

Global site tag (gtag.js) - Google Analytics