golang使用net库实现一个简单的服务端和客户端通信

标签: net
135人阅读 评论(0) 收藏 举报
分类:

golang使用net库实现一个简单的服务端和客户端通信

服务端代码:
服务端启动监听,默认127.0.0.1, 设置端口9090

package main

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

func recvFile(conn net.Conn) {
    fmt.Println("new connection: ", conn.RemoteAddr())
    defer conn.Close()
}

func main() {
    var (
        port = "9090"
        remote = ":" + port
    )
    fmt.Println(remote)

    lisn, err := net.Listen("tcp", remote)
        defer lisn.Close()

    if err != nil {
        fmt.Println("server listen failed!", err)
        os.Exit(-1)
    }

    for {
        conn, err := lisn.Accept()
        if err != nil {
            fmt.Println("client connect failed!", err)
            continue
        }

        go recvFile(conn)
    }
}

客户端代码:
客户端发起连接,目标ip127.0.0.1, 端口:9090

package main

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

func main() {
    var (
        host   = "127.0.0.1"
        port   = "9090"
        remote = host + ":" + port
    )

    fmt.Println(remote)
    conn, err := net.Dial("tcp", remote)
    defer conn.Close()

    if err != nil {
        fmt.Println("connect server failed!.")
        os.Exit(-1)
        return
    }

    fmt.Println(0, "connect ok! sending file...")
}
查看评论

golang tcp 客户端

最近找了网上tcp客户端的例子,都不是很好,特今天写一个tcp 客户端案例。 1.新建tcpclient结构体: type TcpClientModel struct { Conn...
  • niyuelin1990
  • niyuelin1990
  • 2017-09-06 17:27:29
  • 707

我学xingo golang服务器之-xingo_demo server.go start

我学xingo golang服务器之-xingo_demo server.go start 上三节分别讲解学习了,xingo服务器和客户端的协议处理,包括协议的生成,协议的解析和发送,最后又学习了x...
  • atgczcl
  • atgczcl
  • 2017-07-14 17:46:11
  • 850

新手学xingo golang服务器之-golang和unity3d的Protobuf生成(三)

xingo协议用的是Protobuf, 如果是Unity3d客户端也要生成Protobuf, 因此在这里我提取出来进行一下说明: 从网上找了一个unity3d的protobuf生成工具,我把它for...
  • atgczcl
  • atgczcl
  • 2017-08-07 16:31:14
  • 1101

我学xingo golang服务器之-XingoApi调用

XingoApi调用先看看protobuf msg定义:message MyTestMsg{​ int32Code=1; // Field numbers must be positive...
  • atgczcl
  • atgczcl
  • 2017-07-13 12:10:50
  • 735

Go游戏服务器开发的一些思考(十二):行为树behavior3go介绍

概要在游戏开发中,以状态切换来驱动其执行流程的系统,引入行为树可以大大简化编码和配置。本文介绍一个golang行为树库 - behavior3go,并举例如何使用behavior3go来制作技能。be...
  • u013272009
  • u013272009
  • 2017-08-12 21:35:48
  • 1180

go实现一个简单的游戏服务器框架(lotou)起源

最近一直想学习一些关于游戏服务器的知识,显示看了一下云风的skynet框架,从而对于一个游戏服务器框架有了一个基本概要了解。先来说说我对于skynet的一些理解吧。skynet理解skynet只完成了...
  • sydnash
  • sydnash
  • 2016-12-08 15:30:30
  • 3192

Golang游戏服务器

我对和GOLANG写MMO服务器的一些遐想: 1、沙盒(隔离性) SKYNET:原生LUA STATE作为沙盒, 进行服务器间隔离安全性高; 服务可以很容易的配置到不同节点之上。 GO:估计...
  • QQ1528884535
  • QQ1528884535
  • 2017-11-06 19:47:06
  • 432

golang Leaf 游戏服务器框架简介

Leaf 是一个由 Go 语言(golang)编写的开发效率和执行效率并重的开源游戏服务器框架。Leaf 适用于各类游戏服务器的开发,包括 H5(HTML5)游戏服务器。Leaf 的关注点:良好的使用...
  • Kaitiren
  • Kaitiren
  • 2017-11-04 11:43:43
  • 600

GoLang之协程、channel、select、同步锁

GoLang之协程   目前,WebServer几种主流的并发模型: 多线程,每个线程一次处理一个请求,在当前请求处理完成之前不会接收其它请求;但在高并发环境下,多线程的开销比较大;...
  • nuli888
  • nuli888
  • 2017-03-18 22:57:45
  • 2150

使用Golang开发手游服务器的感想

从最初决定使用Golang开发游戏服务器(参考这里),到服务器基本成型,经过了两个多礼拜的时间。这里记录一下感想和心得。具体Golang的使用经验将来有时间会再开篇文章来写。         两个礼...
  • langresser
  • langresser
  • 2016-01-11 11:30:00
  • 9397
    个人资料
    专栏达人 持之以恒
    等级:
    访问量: 74万+
    积分: 9207
    排名: 2542
    博客专栏
    文章分类
    最新评论