有没有比golang更烂的语言?

tablecell · 2021-04-02 13:58:22 · 4071 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2021-04-02 13:58:22 的主题,其中的信息可能已经有所发展或是发生改变。

推荐一下,准备写一段同样功能的代码比较一下体验


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

4071 次点击  ∙  1 赞  
加入收藏 微博
4 回复  |  直到 2021-04-04 11:00:08
LintP
LintP · #1 · 4年之前

用c++ 写服务器

tablecell
tablecell · #2 · 4年之前
#include "iostream"
#include "boost/asio.hpp"

int main(void) {
    boost::asio::io_service ios;
    boost::asio::ip::tcp::endpoint endpotion(boost::asio::ip::tcp::v4(), 8080);
    boost::asio::ip::tcp::acceptor acceptor(ios, endpotion);
    while (true) {
       boost::asio::ip::tcp::socket socket(ios);
       acceptor.accept(socket);
       std::string msg;
       socket.read_some(boost::asio::buffer(msg));
       std::cout << "client : " << msg.c_str() << std::endl;
       socket.write_some(boost::asio::buffer(msg));
    }
  }
  std::cout << "server end." << std::endl;
  getchar();
  return 0;
}


-------------


package main

import (
    "fmt"
    "net"
    "os"
)

func main() {

    netListen, err := net.Listen("tcp", "localhost:8080")
    CheckError(err)
    defer netListen.Close()

    for {
        conn, err := netListen.Accept()
        if err != nil {
            continue
        }
        handleConnection(conn)
    }
}

func handleConnection(conn net.Conn) {
    buffer := make([]byte, 2048)
    for {
        n, err := conn.Read(buffer)
        CheckError(err)
        fmt.Println("client : ", string(buffer[:n]))
        conn.Write(buffer[:n])
    }
    fmt.Println("server end.")
}

func CheckError(err error) {
    if err != nil {
        fmt.Fprintf(os.Stderr, "Fatal error: %s", err.Error())
        os.Exit(1)
    }
}
robertchen
robertchen · #3 · 4年之前

@tablecell</a> 就这?还不速速整一个文件服务器?

我看你asio异步不是挺厉害的?还不快点多线程?搁这写单线程玩具玩啥?

我看是你c++写的舒服还是golang写的舒服? 反正我是都写过的。

对了,要求能轻松交叉编译,至少拷贝部署无障碍。

提醒你,把include补上。你这个不可能编译过。

tablecell
tablecell · #4 · 4年之前

@robertchen</a> include是有的,是markdown 和 include的尖括号冲突了 改成引号就有了 同时使用格式错乱了 如果同时@会员 和 贴代码 帖子会出现两份内容 同时加一些乱的标签,估计是这个在线编辑器的bug"

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传