• 16 Socket通信(简单例子)


       服务端代码:

      

     1 import java.io.*;
     2 import java.net.ServerSocket;
     3 import java.net.Socket;
     4 import java.util.Date;
     5 
     6 /**
     7  * socket服务端简单实现,主要作用测试客户端是否可以成功发送数据
     8  */
     9 public class SocketServer {
    10 
    11     public static void main(String[] args) {
    12         try {
    13             ServerSocket serverSocket = new ServerSocket(9999);
    14             Socket socket=null;
    15             while(true) {
    16                  socket = serverSocket.accept();
    17                  while(socket.isConnected())
    18                  {
    19                      // 读取客户端数据
    20                      InputStream info = socket.getInputStream();
    21                      DataInputStream dis = new DataInputStream(info);
    22                      String data="";
    23                      while((data=dis.readUTF()).length()>0) {
    24                          //存在数据则输出
    25                          System.out.println(data);
    26                          // 向客户端输出数据 说明数据接收成功
    27                          OutputStream os = socket.getOutputStream();
    28                          DataOutputStream dos = new DataOutputStream(os);
    29                          dos.writeUTF("ok!"+new Date());
    30                          dos.flush();
    31                      }
    32                      //400ms输出一次数据
    33                      try {
    34                          Thread.sleep(400L);
    35                      } catch (InterruptedException e) {
    36                          e.printStackTrace();
    37                      }
    38                  }
    39                 //100ms检测一次连接
    40                 try {
    41                     Thread.sleep(100L);
    42                 } catch (InterruptedException e) {
    43                     e.printStackTrace();
    44                 }
    45             }
    46         } catch (IOException e) {
    47             e.printStackTrace();
    48         }
    49     }
    50 }

      客户端代码:

     1 import java.io.*;
     2 import java.net.InetAddress;
     3 import java.net.Socket;
     4 import java.net.SocketAddress;
     5 import java.net.UnknownHostException;
     6 
     7 /**
     8  * socket客户端简单实现,主要作用是往本地固定端口发送数据
     9  */
    10 public class SocketClient {
    11     public static void main(String[] args) {
    12         try {
    13             //建立一个本机socket客户端
    14             Socket socket = new Socket("127.0.0.1", 9999);
    15             // 向服务器端发送数据
    16             OutputStream os =  socket.getOutputStream();
    17             DataOutputStream bos = new DataOutputStream(os);
    18             //每隔20ms发送一次数据
    19             while(true){
    20                 bos.writeUTF("Connect 123 test spark streaming abc xyz hik");
    21                 bos.flush();
    22                 //200ms发送一次数据
    23                 try {
    24                     Thread.sleep(200L);
    25                 } catch (InterruptedException e) {
    26                     e.printStackTrace();
    27                 }
    28                 // 接收服务器端数据
    29                 InputStream is = socket.getInputStream();
    30                 DataInputStream dis = new DataInputStream(is);
    31                 System.out.println(dis.readUTF());
    32             }
    33 
    34         } catch (UnknownHostException e) {
    35             e.printStackTrace();
    36         } catch (IOException e) {
    37             e.printStackTrace();
    38         }
    39     }
    40 }
  • 相关阅读:
    Visitor Pattern (Visitor设计模式)
    JS DatePicker: jscalendar1.0___v1.51 (JS日期选择器)
    转:Mediator模式
    转: Debug with IIS Express
    101 LINQ Samples
    关于进程与线程:About Processes and Threads
    转:PureMVC示例 CafeTownsend
    Haskell Editor:Leksah & EclipseFP The Haskell plugin for Eclipse
    Haskell、C#、Java、C 程序执行效率比较 :Write your first parallel Haskell program
    SCJP: java exerciese 1
  • 原文地址:https://www.cnblogs.com/yangh2016/p/5742238.html
Copyright © 2020-2023  润新知