-------------------------------------------------------------  Dart    SocketClient--------------------------------------------------------------------------------

import 'dart:io';
import 'dart:async';
import 'dart:convert' show utf8;

Socket socket;

void main() {
  Socket.connect("10.10.10.180", 6666).then((Socket sock) {
    socket = sock;
    sock.write("这是客户端消息!");
      socket.listen(dataHandler,
          onError: errorHandler,
          onDone: doneHandler,
          cancelOnError: false);
    socket.close();
  }).catchError((AsyncError e) {
    print("无法连接: $e");
  });
}

//接收报文
void dataHandler(data){
  print(utf8.decode(data));
}

void errorHandler(error, StackTrace trace){
  print(error);
}

void doneHandler(){
  socket.destroy();
}

-------------------------------------------------Java SocketServer------------------------------------------------------------------------

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.ServerSocket;
import java.net.Socket;

public class Server {

    /**
     * Socket服务端
     */
    public static void main(String[] args) {

        try {
            ServerSocket serverSocket=new ServerSocket(6666);
            System.out.println("服务端已启动,等待客户端连接..");
            while (true){
                Socket socket=serverSocket.accept();//侦听并接受到此套接字的连接,返回一个Socket对象
                new Habdler(socket).start();
            }

        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    static class Habdler extends Thread{
        Socket socket = null;
        public Habdler(Socket socket){
            this.socket = socket;
        }

        @Override
        public void run() {
            //根据输入输出流和客户端连接
            InputStream inputStream= null;//得到一个输入流,接收客户端传递的信息
            BufferedReader bufferedReader= null;//加入缓冲区
            OutputStream outputStream= null;//获取一个输出流,向服务端发送信息
            PrintWriter printWriter= null;//将输出流包装成打印流
            try {
                inputStream = socket.getInputStream();
                InputStreamReader inputStreamReader=new InputStreamReader(inputStream);
                bufferedReader = new BufferedReader(inputStreamReader);
                String temp=null;
                String info="";
                while((temp=bufferedReader.readLine())!=null){
                    info+=temp;
                    System.out.println("服务端接收到客户端信息:"+info+",当前客户端ip为:"+socket.getInetAddress().getHostAddress());
                }

                outputStream = socket.getOutputStream();
                printWriter = new PrintWriter(outputStream);
                printWriter.print("服务器消息");
                printWriter.flush();
                socket.shutdownOutput();//关闭输出流
                // 关闭相对应的资源
                printWriter.close();
                outputStream.close();
                bufferedReader.close();
                inputStream.close();
                socket.close();
            } catch (IOException ex) {
                ex.printStackTrace();
            }finally {
                // 关闭相对应的资源
                printWriter.close();
                try {
                    outputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                try {
                    bufferedReader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                try {
                    inputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                try {
                    socket.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }

        }
    }
}

Dart Socket 与Java Socket连接的更多相关文章

  1. 【Socket】Java Socket基础编程

    Socket是Java网络编程的基础,了解还是有好处的, 这篇文章主要讲解Socket的基础编程.Socket用在哪呢,主要用在进程间,网络间通信.本篇比较长,特别做了个目录: 一.Socket通信基 ...

  2. 【Socket】Java Socket编程基础及深入讲解

    Socket是Java网络编程的基础,了解还是有好处的, 这篇文章主要讲解Socket的基础编程.Socket用在哪呢,主要用在进程间,网络间通信.本篇比较长,特别做了个目录: 一.Socket通信基 ...

  3. Java Socket Timeout 总结

    原文出处:囚兔 摘要: Java的网络编程Socket常常用于各种网络工具,比如数据库的jdbc客户端,redis客户端jedis,各种RPC工具java客户端,这其中存在一些参数来配置timeout ...

  4. Java Socket长连接示例代码

    SocketListenerPusher.java代码如下: import java.io.IOException; import java.net.InetSocketAddress; import ...

  5. JAVA Socket连接服务器时可能抛出的异常

    1.UnknownHostException:host(非ip)无法识,就会报该异常,www.google.com.hk这个虽然也ping不通,但是不会报该错,因为他是一个确实存在的域名.他会报Con ...

  6. JAVA Socket(多个客户同时连接,信息共享) client (java/ruby)

    第一步 充分理解Socket 1.什么是socket 所谓socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄.应用程序通常通过"套接字" ...

  7. JAVA网络编程Socket常见问题 【长连接专题】

    一. 网络程序运行过程中的常见异常及处理 第1个异常是 java.net.BindException:Address already in use: JVM_Bind. 该异常发生在服务器端进行new ...

  8. java socket 判断Socket连接失效

    要判断socket连接链路是否可用时,不能通过socket.isClosed() 和 socket.isConnected() 方法判断,要通过心跳包 socket.sendUrgentData(0x ...

  9. .net , java webSocket 连接 Socket.io (1.4.4版本) 问题

    .net版Socketio4net类库和java版socket.io-java-client类库 连接socket.io 1.4版本都不行,网上大多是socket.io 0.9版本的,socket.i ...

随机推荐

  1. P1089津津的储蓄计划

    题目描述 津津的零花钱一直都是自己管理.每个月的月初妈妈给津津300300元钱,津津会预算这个月的花销,并且总能做到实际花销和预算的相同. 为了让津津学习如何储蓄,妈妈提出,津津可以随时把整百的钱存在 ...

  2. chapter06

    /** * Created by EX-CHENZECHAO001 on 2018-03-30. */class Chapter06 { } // 6 对象// 用对象作为单例或存放工具的方法// 类 ...

  3. 【手撸一个ORM】MyOrm的使用说明

    [手撸一个ORM]第一步.约定和实体描述 [手撸一个ORM]第二步.封装实体描述和实体属性描述 [手撸一个ORM]第三步.SQL语句构造器和SqlParameter封装 [手撸一个ORM]第四步.Ex ...

  4. 009 Palindrome Number 判断一个正整数是否是回文数

    详见:https://leetcode.com/problems/palindrome-number/description/ 实现语言:Java 方法一: class Solution { publ ...

  5. 二维hash

    题目描述 给出一个n * m的矩阵.让你从中发现一个最大的正方形.使得这样子的正方形在矩阵中出现了至少两次.输出最大正方形的边长. 输入描述: 第一行两个整数n, m代表矩阵的长和宽: 接下来n行,每 ...

  6. Spark Mllib里的如何对两组数据用斯皮尔曼计算相关系数

    不多说,直接上干货! import org.apache.spark.mllib.stat.Statistics 具体,见 Spark Mllib机器学习实战的第4章 Mllib基本数据类型和Mlli ...

  7. settings.xml样例文件

    localRepository G:\program-my\maven-responsery true --> false --> com.your.plugins --> prox ...

  8. 64位wampserver开启curl扩展失败的问题

    今天在运行程序时报错: Fatal error:Call to undefined function curl_init()... 在网上查了一下,是因为php_curl.dll扩展没有开启的缘故,于 ...

  9. SQLServer 索引的使用情况

    —在优化查询SQL语句,查看索引使用情况SQL语句: select db_name(database_id) as N'数据库名称', object_name(a.object_id) as N'表名 ...

  10. DBTransaction

    // Created by 张国锋 on 15-7-23. // Copyright (c) 2014年 张国锋. All rights reserved. // #import "AppD ...