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

写了一个javaSocket通信的例子,比较容易懂,主要是TCP协议的。下面是服务端的代码

阅读更多
Java综合 .

写了一个javaSocket通信的例子,比较容易懂,主要是TCP协议的。下面是服务端的代码



Java代码 复制代码 收藏代码
1.import java.io.IOException; 
2.import java.net.InetAddress; 
3.import java.net.Socket; 
4. 
5.public class ServerSocket { 
6. 
7.    public static void main(String[] args) { 
8.        beginSocket(); 
9.    } 
10.     
11.    public static void beginSocket(){ 
12.        try { 
13.            java.net.ServerSocket serverSocket=new java.net.ServerSocket(3456); 
14.            InetAddress inta=serverSocket.getInetAddress().getLocalHost(); 
15.            System.out.println(inta.getHostAddress()); 
16.            while(true){ 
17.                Socket socket=serverSocket.accept(); 
18.                new HelloMessage(socket); 
19.            } 
20.        } catch (IOException e) { 
21.            e.printStackTrace(); 
22.        } 
23.    } 
24.} 


为了提高并发时的处理效率,对于每个请求,系统都新建一个线程处理。



Java代码 复制代码 收藏代码
1.import java.io.BufferedReader; 
2.import java.io.InputStreamReader; 
3.import java.io.PrintWriter; 
4.import java.net.Socket; 
5. 
6.public class HelloMessage extends Thread { 
7.    private Socket socket_ = null; 
8.    public HelloMessage(Socket socket) { 
9.        this.socket_ = socket; 
10.        this.start(); 
11.    } 
12. 
13.    public void run() { 
14.        try { 
15.            BufferedReader bReader = new BufferedReader(new InputStreamReader( 
16.                    this.socket_.getInputStream())); 
17.            PrintWriter pWriter = new PrintWriter(this.socket_ 
18.                    .getOutputStream()); 
19.            String requestStr = bReader.readLine(); 
20.            if (requestStr != null && !"".equals(requestStr)) { 
21.                if (requestStr.equals("java")) { 
22.                    pWriter.println("your write is java"); 
23.                } 
24.                if (requestStr.equals(".net")) { 
25.                    pWriter.println("your write is .net"); 
26.                } 
27.                if (requestStr.equals("php")) { 
28.                    pWriter.println("your write is php"); 
29.                } 
30.                if (requestStr.equals("end")) { 
31.                    pWriter.println("your write is end"); 
32.         
33.                }else{ 
34.                    pWriter.println("your write is other"); 
35.                } 
36.            }else{ 
37.                pWriter.println("your write is null"); 
38.            } 
39.            pWriter.flush(); 
40.            pWriter.close(); 
41.            bReader.close(); 
42.            this.socket_.close(); 
43.        } catch (Exception e) { 
44.            e.printStackTrace(); 
45.        } 
46. 
47.    } 
48.} 


然后是客户端的代码。



Java代码 复制代码 收藏代码
1.import java.io.BufferedReader; 
2.import java.io.IOException; 
3.import java.io.InputStreamReader; 
4.import java.io.PrintWriter; 
5.import java.net.Socket; 
6.import java.net.UnknownHostException; 
7. 
8.public class ClientSocket { 
9.    public static void main(String[] args) { 
10.        clientRequest(); 
11.    } 
12.    private static void clientRequest() { 
13.        try { 
14.            while (true) { 
15.                Socket clientSocket = new Socket("172.168.4.105", 3456); 
16.                BufferedReader bReader = new BufferedReader(new InputStreamReader( 
17.                        System.in)); 
18.                System.out.println("please input java or .net or php or end"); 
19.                String strLine = bReader.readLine(); 
20.                if (strLine != null && !"".equals(strLine)) { 
21.                    PrintWriter pWriter = new PrintWriter(clientSocket 
22.                            .getOutputStream(), true); 
23.                    pWriter.println(strLine); 
24.                    BufferedReader br = new BufferedReader( 
25.                            new InputStreamReader(clientSocket.getInputStream())); 
26.                    String strResult = br.readLine(); 
27.                    System.out.println(strResult); 
28.                     
29.                    pWriter.flush(); 
30.                    pWriter.close(); 
31.                    clientSocket.close(); 
32.                } 
33.            } 
34.        } catch (UnknownHostException e) { 
35.            e.printStackTrace(); 
36.        } catch (IOException e) { 
37.            e.printStackTrace(); 
38.        } 
39.    } 
40.} 


这样一个简单的TCP,Socket编程的原型就成了。简单介绍下:



几个比较重要的API



.Accept方法用于产生"阻塞",直到接受到一个连接,并且返回一个客户端的Socket对象实例。

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

.getOutputStream方法连接的另一端将得到输入,同时返回一个OutputStream对象实例。








分享到:
评论

相关推荐

    基于java的modbus TCP通信

    Modbus 协议是一项应用层报文传输协议,它在连接至不同类型总线或网络的设备之间提供客户机/服务器通信,包括 ASCII、RTU、TCP 三种报文类型。 Modbus TCP 数据帧由 MBAP 和 PDU 两部分组成。MBAP 是报文头,长度为...

    javaSocket的Tcp通信方式两个线程,一个线程接收数据一个线程发送数据

    在"javaSocket的Tcp通信方式两个线程,一个线程接收数据一个线程发送数据"这个场景下,我们将探讨如何通过多线程来优化TCP通信的效率和响应性。 首先,TCP(Transmission Control Protocol)是一种面向连接的、可靠...

    javaSocket客户端与服务端

    在这个“javaSocket客户端与服务端”的程序中,我们有两个主要的组件:Server.java(服务端)和Client.java(客户端)。下面将详细阐述这两个组件在实现TCP通信中的工作原理以及相关的Java Socket知识点。 首先,...

    javasocket通信编程-示例代码

    在Java中,Socket提供了基于TCP/IP协议的网络通信接口,是实现客户端-服务器模型的基础。在这个示例中,我们将深入探讨Java Socket通信编程的基本概念、步骤以及如何通过代码实现。 首先,理解Socket的基本概念:...

    JAVA源码javaSocket通信实现代码

    Java Socket通信是一种基于TCP/IP协议的网络编程技术,它允许Java程序之间进行数据交换。Socket通信分为服务端Socket和客户端Socket两种。服务端Socket在指定端口监听,等待客户端Socket的连接请求;而客户端Socket...

    JAVA源码JavaSocket聊天通信演示代码

    JavaSocket聊天通信演示代码是一种能够帮助开发者快速理解如何使用JavaSocket进行网络编程的资源。通过这类代码演示,开发者可以学习到客户端与服务器之间的数据传输、消息的处理等核心概念。 在JavaSocket编程中,...

    很清晰的java的socket通信,服务端和客服端

    在Eclipse项目中,`2017-10-01 JavaSocket通信基础`很可能包含了服务端和客户端的源代码,其中会有详细的注释说明每个步骤的实现。通常,项目会包含两个独立的Java类,一个代表服务器,另一个代表客户端。通过运行这...

    javaSOCKET通信聊天系统

    Socket是TCP/IP协议族的一部分,它提供了应用程序通过网络进行通信的能力。在Java中,`java.net.Socket`类代表了客户端到服务器的一个连接,而`java.net.ServerSocket`类用于监听并接受来自客户端的连接请求。在聊天...

    javasocket使用TCP协议实现的聊天室.pdf

    Java中的`java.net.Socket`类代表了TCP协议中的一个连接,它允许两台机器之间的双向通信。在服务器端,我们首先需要创建一个`ServerSocket`实例来监听特定端口上的连接请求。 2. **ServerSocket**: `java.net....

    javaSocket的即时通信系统客户端代码分享

    Java Socket 是Java编程语言中用于实现网络通信的基础类库,它允许Java程序作为一个TCP客户端,与服务器进行数据交互。在本“Java Socket的即时通信系统客户端代码分享”中,我们将探讨如何利用Java Socket构建一个...

    javasocket服务端和客户端编程.pdf

    Java Socket编程是Java中进行网络通信的核心技术,它允许两个网络应用程序通过TCP/IP协议进行数据交换。在Java中,Socket和ServerSocket类是实现客户端-服务器模型的基础。 首先,我们要理解网络编程中的两个关键...

    基于JavaSocket多客户端并发通信聊天程序的设计与实现..pdf

    【JavaSocket多客户端并发通信聊天程序】是一种基于Java编程语言实现的网络通信应用程序,它允许多个客户端同时与服务器进行交互,实现多人实时聊天的功能。JavaSocket利用了Java提供的强大网络编程接口,使得开发者...

    C++服务器与java进行socket通信案例

    `FileNetServerCpp`很可能是一个实现了Socket服务端的C++源代码文件。在C++中,我们可以使用标准库中的`<sys/socket.h>`和`<netinet/in.h>`来创建和管理Socket。服务器端的主要步骤包括: 1. 创建Socket:调用`...

    javasocket例子,包含多线程部分实现

    在这个“javasocket例子,包含多线程部分实现”的教程中,我们将深入探讨Java Socket如何与多线程相结合,以实现更高效、更复杂的网络应用程序。 首先,Java Socket分为ServerSocket和Socket两种类型。ServerSocket...

    javaSocket

    在给定的“javaSocket”压缩包中,包含了一个TCP聊天室服务器(TCPChatRoomServer)和一个对应的客户端(TCPChatRoomClient)的源代码。这些代码可以帮助我们理解如何在Java中实现基于Socket的网络通信。 首先,让...

    基于JavaSocket多客户端并发通信聊天程序的设计与实现

    Socket是基于TCP/IP协议族的通信方式,Java.net包中的Socket类和ServerSocket类为开发者提供了便捷的网络通信接口,隐藏了底层实现细节,使得开发人员能快速构建网络通信程序。 2. **Socket通信机制** - **流式...

    java源码资源JavaSocket聊天通信演示代码

    java源码资源Java Socket 聊天通信演示代码提取方式是百度网盘分享地址

    javasocket的相关协议

    下面的示例代码演示了如何使用 Java 实现文件的转换,将一个文件中的文本全部转换成大写字母后保存到另一个文件中。 ```java import java.io.*; public class Uppercase { public static void main(String[] args)...

    简单java socket在线聊天室

    - **Socket**:Java中的Socket类代表TCP协议中的一个连接,它是两台机器间通信的端点。每个Socket都有一个IP地址和端口号,用于唯一标识网络上的连接。 - **ServerSocket**:ServerSocket类则用于监听特定端口的...

Global site tag (gtag.js) - Google Analytics