首页 > 其他分享 >golang 实现tcp socket 通信

golang 实现tcp socket 通信

时间:2024-07-01 22:08:56浏览次数:20  
标签:socket err tcp server golang error net

都说golang适合网络编程,知道今天写了tcp我才知道他到底有多简洁。(虽然已经对着golang的webrtc研究很久了)
首先是client端代码:

package main

import (
	"bufio"
	"fmt"
	"net"
)

func main() {
	conn, err := net.Dial("tcp", "192.168.1.106:8080")
	if err != nil {
		println("error")
	}
	p := []byte{255}
	for {
		nn, err := bufio.NewWriter(conn).Write(p)
		if err != nil {
			println("error")
		}
		fmt.Print(nn)
	}

}

创建client端很简洁,只需要指定协议和ip地址就行了,而且一行就完成了,此时不得不提一下c写tcp socket的繁琐过程,虽然都是必不可少的,但是有了golang为什么又要去c受折磨呢:) golang的net包很强大,net。Dial正如函数名一样,拨号,对server端进行拨号,返回一个connection和一个error,对error的处理比较常见,可能是panic也可以是打印一下就算了,看个人需求。本文需要实现的功能是client端发送消息到server端,所以我在client端调用了bufio.NewWriter(conn).Write(p),将byte类型的p利用conn发送给server端。

server端代码明天再发,现在Ubuntu的主机不在身边了

标签:socket,err,tcp,server,golang,error,net
From: https://www.cnblogs.com/wxL-videostreaming/p/18278945

相关文章

  • 【Websocket】解析帧frame.c源码分析
    0.简介本文主要分析https://github.com/mortzdk/websocket中解析帧相关函数1.predict.h#ifndefwss_predict_h#definewss_predict_h#ifdefined(__GNUC__)||defined(__INTEL_COMPILER)/*__builtin_expect是GCC提供的一个内建函数,用于向编译器提示某个条件在大多......
  • 三次握手,四次挥手,以及Socket、TCP、HTTP之间的区别
    网络开发1.网站:最全的socket,tcp,http三者之间的区别和原理_cocket与tcpip-CSDN博客1.网络七层1.定义:网络七层(简称:OSI),即开放式系统互连。该体系架构标准定义了网络互连的七层框架(物理层、数据链路层、网络层、传输层、会话层、表示层和应用层)2.socket,tcp,http三者之间的区别和......
  • RabbitMQ延时任务通过死信队列实现(golang)
    最近在一个项目中,需要实现在用户上传图片30分钟后,删除对应图片,以保证用户隐私。我们使用rabbitmq来实现。基于rabbitmq实现延时任务有两种方式,一种为队列ttl+死信exchange,另一种为安装插件(https://github.com/rabbitmq/rabbitmq-delayed-message-exchange)。其中安装......
  • 鸿蒙技术之WebSocket连接详解
    WebSocket连接详解WebSocket是一种在单个TCP连接上提供全双工通信信道的协议,它允许服务器主动向客户端推送数据,非常适合实时通信和数据交换频繁的应用场景。以下是WebSocket连接的详细步骤和知识点:1.创建WebSocket对象首先,需要通过createWebSocket()方法创建一个WebSock......
  • 深入理解TCP协议格式(WireShark分析)
    传输控制协议(TCP)是互联网中最为关键的通信协议之一。了解TCP协议的细节不仅对于网络工程师至关重要,对于任何涉及网络通信的软件开发人员而言都是必备的知识。本文旨在深入探讨TCP协议,从协议的基本概述到其工作机制,以及如何通过实际代码实现和工具分析来理解其运作。TCP协......
  • Golang:go-querystring将struct编码为URL查询参数的库
    Golang:go-querystring将struct编码为URL查询参数的库原创 吃个大西瓜 CodingBigTree 2024-05-0908:30 北京go-querystringisaGolibraryforencodingstructsintoURLqueryparameters.译文:go-querystring将struct编码为URL查询参数的Golang库文档ht......
  • webrtc 的datachannel在golang中的使用
    因为在发送端需要接收一些接收端的统计信息,而且具有不可丢失的需求,所以采取利用datachannel进行传输。datachannel是基于sctp协议的传输通道,sctp可提供按需可靠到达的服务,在datachannel中可以设置是否按序,是否可靠,最大重传次数,数据最大保存时间(当数据超过保存时间仍未发出时将被丢......
  • Golang文件操作
    文件是数据源(保存数据的地方)的一种,word文档,txt文件,excel文件...都是文件。文件最主要的作用就是保存数据,它既可以保存一张图片,也可以保持视频,声音...os.file封装了所有对文件的操作,且file是一个结构体: 打开和关闭文件1.打开文件,用于读取: 传入的是一个字符......
  • Websocket协议
    一、websocket简介websocket是在单个TCP连接上进行全双工通信的协议,允许Server主动向Client推送数据。客户端和服务器只需要完成一次握手,就可以创建持久性的连接,进行双向数据传输。websocket是独立的,作用在TCP上的协议。为了向前兼容,WebSocket协议使用HTTPUpgrade协议升......
  • python创建websocket服务器,实现循环发送消息
    WebSocket协议是在2008年由Web应用程序设计师和开发人员创建的,目的是为了在Web浏览器和服务器之间提供更高效、更低延迟的双向通信。它允许客户端和服务器在任何时候发送消息,无需重新建立TCP连接。WebSocket可以在Web浏览器和服务器之间传输文本和二进制数据,使得构建实时Web......