go web 之socket 和 websocket 学习

socket 介绍

socket 是客户端和服务器连接的桥梁,socket 用于web浏览器和服务器的通信,socket是一种文件描述符。
socket 分为两种 流式socket数据报式socket
1. 流式socket是一种面向连接的Socket,针对于面向连接的TCP服务应用
2. 数据报式socket是一种无连接的socket,对应于无连接的UDP服务应用

socket通信

socket 的通信依赖于三个部分IP端口协议, 这三部分可以标志一个进程
网络层的“ip地址”可以唯一标识网络中的主机,
而传输层的“协议+端口”可以唯一标识主机中的应用程序(进程)。
这样利用三元组(ip地址,协议,端口)就可以标识网络的进程了,网络中需要互相通信的进程,就可以利用这个标志在他们之间进行交互。

go 服务端的简单实现

package main

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

func main() {
    service :=":7077"
    // 获得tcpAdd ,其中包括ip 和端口
    /*
    type TCPAddr struct {
    IP IP
    Port int
    }*/
    tcpAddr,err := net.ResolveTCPAddr("tcp4",service)
    checkerror(err)
    //监听端口号
    listener,err:=net.ListenTCP("tcp",tcpAddr)
    checkerror(err)
    for {
        //通过Accept接受连接
        conn, err := listener.Accept()
        if err != nil {
            continue
        }
        //使用goroutine 处理一个连接,实现并发
        go handleClient(conn)
    }
}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值