首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Golang通过socket与java通讯

Golang通过socket与java通讯

作者头像
李海彬
发布2018-03-19 17:33:18
1.8K0
发布2018-03-19 17:33:18
举报
文章被收录于专栏:Golang语言社区Golang语言社区

下面上代码:

//server.go

//客户端,主要是在9000端口创建监听程序,用于接受客户端连接

package main



import (

    "bufio"

    "fmt"

    "log"

    "net"

    "time"

)



func main() {

    tcpAddr, err := net.ResolveTCPAddr("tcp", "127.0.0.1:9000")

    if err != nil {

        log.Fatalln("地址解析错误", err)

    }

    tcpListener, err := net.ListenTCP("tcp", tcpAddr)    //创建监听

    if err != nil {

        log.Fatalln("地址监听失败", err)

    }



    defer tcpListener.Close()



    fmt.Println("开始接受客户端连接:")

    tcpConn, err := tcpListener.AcceptTCP()    //接受客户端连接

    if err != nil {

        log.Fatalln("接受客户端连接失败", err)

    }

    fmt.Println("客户端连接成功")

    _, err = tcpConn.Write([]byte("你好,我是服务器,欢迎连接!\n"))    //向客户端写数据

    if err != nil {

        log.Fatalln("往客户端数据失败", err)

    }

    reader := bufio.NewReader(tcpConn)



    for {

        line, err := reader.ReadString('\n')   //读取客户端发来的数据

        if err != nil {

            log.Fatalln("读取数据失败", err)

        }

        fmt.Println("客户端发来数据:", line)



        _, err = tcpConn.Write([]byte("我是服务器,我是服务器,收到请回答,收到请回答\n"))

        if err != nil {

            log.Fatalln("往客户端发送数据失败", err)

        }

        time.Sleep(1 * time.Second)    //延时一秒

    }

}

//Client.java

//主要是连接服务端的9000端口,然后读数据,写数据

package pri.guanlaolin.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;



public class Client {



    private PrintWriter cout;

    private Socket socket;



    public Client() throws UnknownHostException, IOException,

            InterruptedException {

        // TODO Auto-generated constructor stub



        this.socket = new Socket("127.0.0.1", 9000);   //连接服务器9000端口



        this.cout = new PrintWriter(socket.getOutputStream());

        this.cout.println("你好,我是客户端!");     //向服务器写入数据



        BufferedReader br = new BufferedReader(new InputStreamReader(

                socket.getInputStream()));



        String line = "连接服务器成功";

        System.out.println(line);



        while (line != null) {

            line = br.readLine();     //读取服务器数据

            System.out.println(line);     

            this.cout.println("客户端收到,客户端收到");     //向服务器发送数据

            this.cout.flush();

            Thread.sleep(1000);    //延时1秒

        }

        br.close();

        this.cout.close();

        socket.close();

    }



    public static void main(String[] args) throws UnknownHostException,

            IOException, InterruptedException {

        // TODO Auto-generated method stub

        new Client();

    }



}
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-01-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Golang语言社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档