Golang通过socket与java通讯
时间:2022-05-04
本文章向大家介绍Golang通过socket与java通讯,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
下面上代码:
//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();
}
}
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释