golang通过socket与java通讯
来源:互联网 发布:学神it linux视频下载 编辑:程序博客网 时间:2024/06/16 05:17
今天有师弟问我计算机专业学计算机网路基础究竟有什么作用?一个项目只一门编程语言吗?作为回答,我写下这篇文章。
本文主要是实现echo服务器/客户端,服务器采用谷歌开源的golang编写,客户端采用java编写(主要是对这两门语言的编程稍微熟悉点),本文的目的是为了说明,编程中,网络基础是十分重要的,一个项目中,往往不仅仅只用一门编程语言,由于本人也是入门,写的不好地方,望指正,谢谢。另有有不懂的,可联系本人,下面上代码:
//server.go//客户端,主要是在9000端口创建监听程序,用于接受客户端连接package mainimport ( "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(); }}
运行结果截图:
服务端
客户端
0 0
- golang通过socket与java通讯
- JAVA 与SOCKET通讯
- flex通过socket json与后台通讯
- VC与linux通过socket通讯
- java与Flash的Socket通讯
- Android 模拟器(JAVA)与C++ socket 通讯
- Java与C++Socket通讯注意
- Java Socket 模拟客户端与服务器端通讯
- Java与C++Socket通讯注意
- VC++与java进行socket通讯
- java与c之间的socket通讯
- java socket与 c socket通讯 java服务端
- Android通过Socket(TCP/IP)与PC通讯
- Android通过Socket(TCP/IP)与PC通讯
- Android通过Socket(TCP/IP)与PC通讯
- Android通过Socket(TCP/IP)与PC通讯
- Android通过Socket(TCP/IP)与PC通讯
- Android通过Socket(TCP/IP)与PC通讯
- 【深夜】:为什么你是一个loser?
- Eclipse&JavaEE之中的引入项目运行错误问题
- eclipse android 电量显示
- POJ 3752 解题报告
- 指示当前焦点
- golang通过socket与java通讯
- Scala基础教程--1 使用sbt创建scala项目
- Scala基础教程--2 基本语法
- 给Apk瘦身
- 利用Nginx做负载均衡
- 搭建Nginx+Java环境(转)
- 2015最新华为过360版GSMS软件ISO文件下载
- C++智能指针使用总结
- 程序员浪费生命的几种方式