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

Java的单线程Socket通信

阅读更多
天天写BS的东西,突然感到自己基础功底差了点,看来的恶补一番。
单线程的Socket
java 代码
  1. package  com.wangtong.network;   
  2.   
  3. import  java.io.BufferedReader;   
  4. import  java.io.IOException;   
  5. import  java.io.InputStreamReader;   
  6. import  java.io.PrintWriter;   
  7. import  java.net.ServerSocket;   
  8. import  java.net.Socket;   
  9.   
  10. public   class  ServerSocket {   
  11.   
  12.      public   static   void  main(String[] args) {   
  13.          try  {   
  14.             createServerSocket();   
  15.         }  catch  (IOException e) {   
  16.              // TODO Auto-generated catch block   
  17.             e.printStackTrace();   
  18.         }   
  19.     }   
  20.   
  21.      private   static   void  createServerSocket()  throws  IOException {   
  22.         ServerSocket serverSocket =  new  ServerSocket( 8189 );   
  23.         Socket socket = serverSocket.accept(); // wait for client connection   
  24.          while  ( true ) {   
  25.             BufferedReader in =  new  BufferedReader( new  InputStreamReader(socket   
  26.                     .getInputStream()));   
  27.             PrintWriter out =  new  PrintWriter(socket.getOutputStream());   
  28.              while  ( true ) {   
  29.                 String str = in.readLine();   
  30.                 System.out.println( "server:"  + str);   
  31.                 out.println( "client receive"  + str);   
  32.                 out.flush();   
  33.                  if  (str.equals( "exit" ))   
  34.                      break ;   
  35.             }   
  36.             socket.close();   
  37.   
  38.         }   
  39.     }   
  40.   
  41. }   
java 代码
  1. package  com.wangtong.network;   
  2.   
  3. import  java.io.BufferedReader;   
  4. import  java.io.IOException;   
  5. import  java.io.InputStream;   
  6. import  java.io.InputStreamReader;   
  7. import  java.io.OutputStream;   
  8. import  java.io.PrintWriter;   
  9. import  java.net.Socket;   
  10. import  java.net.UnknownHostException;   
  11. import  java.util.Scanner;   
  12.   
  13.   
  14. public   class  ClientSocket {   
  15.      private   static   final  String URL =  "localhost" ;   
  16.   
  17.      private   static   final   int  PORT =  8189 ;   
  18.   
  19.   
  20.      /**  
  21.      * create client socket  
  22.      *   
  23.      * @throws IOException  
  24.      * @throws UnknownHostException  
  25.      *   
  26.      */   
  27.      private   static   void  createClientSocket()  throws  UnknownHostException,   
  28.             IOException {   
  29.         Socket clientSocket =  new  Socket(URL, PORT);   
  30.         BufferedReader in =  new  BufferedReader( new  InputStreamReader(   
  31.                 clientSocket.getInputStream()));   
  32.         PrintWriter out =  new  PrintWriter(clientSocket.getOutputStream());   
  33.         BufferedReader wt =  new  BufferedReader( new  InputStreamReader(System.in));   
  34.          while  ( true ) {   
  35.             String str = wt.readLine();   
  36.             out.println( "client send:"  + str);   
  37.             out.flush();   
  38.              if  (str.equals( "end" )) {   
  39.                  break ;   
  40.             }   
  41.             System.out.println(in.readLine());   
  42.         }   
  43.         clientSocket.close();   
  44.   
  45.     }   
  46.   
  47.      public   static   void  main(String[] args) {   
  48.   
  49.          try  {   
  50.             createClientSocket();   
  51.         }  catch  (UnknownHostException e) {   
  52.              // TODO Auto-generated catch block   
  53.             e.printStackTrace();   
  54.         }  catch  (IOException e) {   
  55.              // TODO Auto-generated catch block   
  56.             e.printStackTrace();   
  57.         }   
  58.     }   
  59. }   
分享到:
评论
1 楼 死神的微笑 2011-08-17  
找遍了全世界没找到这样的文章!!太感谢啦~~ 解决了我这个大菜鸟的很多问题!!

相关推荐

    单线程与多线程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