Java Socket Example

简介: 1.服务端:server package com.socket; import java.io.BufferedReader; import java.io.IOException; import java.

 

1.服务端:server

package com.socket;
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
 
import com.common.LogHelper;
 
/**
 * ServerSide: receive message from Client and return it.
 * @author Guoliang
 *
 */
public class MesgServer implements Runnable{
     
    public void run() {
        LogHelper.log("ServerStarted");
        try {
            ServerSocket serverSocket = new ServerSocket(8888);
         
            while (true) {
                 
                    Socket socket = serverSocket.accept();
                    LogHelper.log("Request: " + socket.toString());
                     
                    BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
                    PrintWriter out = new PrintWriter(socket.getOutputStream());
                     
                    out.println("Connected!");
                    out.flush();
                     
                    String lineInput;
                    while ((lineInput = in.readLine()) != null) {
                        LogHelper.log("GotMesgFromClient: " + lineInput);
                        out.println("ServerReturnMsg: " + lineInput);
                        out.flush();
                        if("exit".equals(lineInput)) {
                            break;
                        }
                    }
                     
                    out.close();
                    in.close();
                    socket.close();
            }
             
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
 
}

2.客户端 Client

package com.socket;
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;
 
import com.common.LogHelper;
 
public class MesgClient {
 
    /**
     * Send mesg to server side.
     * @param args
     * @throws IOException
     * @throws UnknownHostException
     */
    public static void main(String[] args) throws UnknownHostException, IOException {
         
        // Start server.
        new Thread(new MesgServer()).start();
         
        Socket socket = new Socket("localhost", 8888);
        LogHelper.log("Connecting...");
         
        PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
        BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
         
        LogHelper.log(in.readLine());
         
        // Simplest testing
        out.println("Hello!");
        LogHelper.log(in.readLine());
         
        // Read user input.
        BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
        String strInput = null;
        while ((strInput = stdIn.readLine()) != null) {
            out.println(strInput);
            LogHelper.log("Send: " + strInput);
            LogHelper.log(in.readLine());
        }
    }
}

Output:

[Thread-0]ServerStarted
[main]Connecting...
[Thread-0]Request: Socket[addr=/127.0.0.1,port=5569,localport=8888]
[main]Connected!
[Thread-0]GotMesgFromClient: Hello!
[main]ServerReturnMsg: Hello!
liguoliang.com  // user input.
[Thread-0]GotMesgFromClient: liguoliang.com
[main]Send: liguoliang.com
[main]ServerReturnMsg: liguoliang.com

 

转自:

http://liguoliang.com/2013/java-socket-example/

目录
相关文章
|
Java 物联网 定位技术
Java socket获取gps定位
通过Java Socket编程获取GPS定位信息可以实现实时的地理位置跟踪。本文介绍了如何搭建Socket服务器、解析GPS数据以及实现客户端发送GPS数据的流程。希望这篇文章能为开发者提供清晰的指导,帮助构建高效的GPS定位系统。
372 7
|
Java 流计算
Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!
Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!
219 2
Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!
|
网络协议 安全 Java
Java Socket原理
Java Socket原理是指在Java中通过Socket实现的网络通信的基础理论与机制。Socket是网络中不同设备间通信的一种标准方式,它允许应用程序之间通过TCP/IP等协议进行数据交换。在Java中,利用Socket编程可以方便地创建客户端与服务器端应用,实现跨网络的数据传输功能,是互联网软件开发中的重要技术之一。它支持多种通信模式,如可靠的流式套接字(TCP)和数据报式套接字(UDP)。
288 10
如何在Java中实现多线程的Socket服务器?
在Java中,多线程Socket服务器能同时处理多个客户端连接以提升并发性能。示例代码展示了如何创建此类服务器:监听指定端口,并为每个新连接启动一个`ClientHandler`线程进行通信处理。使用线程池管理这些线程,提高了效率。`ClientHandler`读取客户端消息并响应,支持简单的文本交互,如发送欢迎信息及处理退出命令。
452 2
|
网络协议 安全 Java
Java中的网络编程:Socket编程详解
Java中的网络编程:Socket编程详解
|
Java API 开发者
Java中的Socket编程与应用
Java中的Socket编程与应用
|
网络协议 安全 Java
Java中的网络编程:Socket编程详解
Java中的网络编程:Socket编程详解
|
Java API 开发者
Java中的Socket编程与应用
Java中的Socket编程与应用
|
网络协议 Java
如何在Java中使用Socket编程实现TCP连接?
在Java中,通过Socket编程实现TCP连接非常常见。以下演示了基本的TCP通信流程,可根据具体需求进行扩展。
738 0
|
Java 数据格式
Java面试题:简述Java Socket编程的基本流程,包括客户端和服务器的创建与通信。
Java面试题:简述Java Socket编程的基本流程,包括客户端和服务器的创建与通信。
312 0