[GO]tcp网络通信和实现
服务端的代码
package main import (
"net"
"fmt"
) func main() {
//监听
listener, err := net.Listen("tcp", ":8000") //不写IP地址代表监听的是本机
if err != nil {
fmt.Println("listener errinfo = ", err)
return
}
defer listener.Close() conn,err := listener.Accept()//阻塞,等待用户连接
if err != nil {
fmt.Println("accept err = ", err)
return
}
//接收用户的请求
buf := make([]byte, )
n, err1 := conn.Read(buf)
if err1 != nil{
fmt.Println("err1 = ", err1)
return
}
fmt.Println(" buf = ", string(buf[:n]))
defer conn.Close() //关闭当前用户的连接
}
客户端的代码
package main import (
"net"
"fmt"
) func main() {
//主动连接服务器
conn, err:=net.Dial("tcp", "127.0.0.1:8000")
if err != nil {
fmt.Println("err = ", err)
return
}
defer conn.Close() conn.Write([]byte("are you ok"))
}
它们的实现步骤为

[GO]tcp网络通信和实现的更多相关文章
- 一文搞懂如何使用Node.js进行TCP网络通信
摘要: 网络是通信互联的基础,Node.js提供了net.http.dgram等模块,分别用来实现TCP.HTTP.UDP的通信,本文主要对使用Node.js的TCP通信部份进行实践记录. 本文分享自 ...
- tcp网络通信的三次握手与三次挥手
背景描述 通过上一篇中网络模型中的IP层的介绍,我们知道网络层,可以实现两个主机之间的通信.但是这并不具体,因为,真正进行通信的实体是在主机中的进程,是一个主机中的一个进程与另外一个主机中的一个进程在 ...
- 【转】【开源下载】基于TCP网络通信的即时聊天系统(IM系统)(c#源码)
原文链接 强烈关注,学习!
- Linux socket网络编程基础 tcp和udp
Socket TCP网络通信编程 首先,服务器端需要做以下准备工作: (1)调用socket()函数.建立socket对象,指定通信协议. (2)调用bind()函数.将创建的socket对象与当前主 ...
- 脑残式网络编程入门(一):跟着动画来学TCP三次握手和四次挥手
.引言 网络编程中TCP协议的三次握手和四次挥手的问题,在面试中是最为常见的知识点之一.很多读者都知道“三次”和“四次”,但是如果问深入一点,他们往往都无法作出准确回答. 本篇文章尝试使用动画图片的方 ...
- [转帖]脑残式网络编程入门(一):跟着动画来学TCP三次握手和四次挥手
脑残式网络编程入门(一):跟着动画来学TCP三次握手和四次挥手 http://www.52im.net/thread-1729-1-1.html 1.引言 网络编程中TCP协议的三次握手和 ...
- ESP8266 station模式下建立client、server TCP连接
程序实现内容: 1.在station模式下,ESP8266作为client.server进行TCP连接2.实现数据的发送.接收(同时回传)实现思路:TCP网络通信分层为:应用层.网络层.数据链路层.物 ...
- Java入门系列-25-NIO(实现非阻塞网络通信)
还记得之前介绍NIO时对比传统IO的一大特点吗?就是NIO是非阻塞式的,这篇文章带大家来看一下非阻塞的网络操作. 补充:以数组的形式使用缓冲区 package testnio; import java ...
- Java网络编程之TCP、UDP
Java网络编程之TCP.UDP 2014-11-25 15:23 513人阅读 评论(0) 收藏 举报 分类: java基础及多线程(28) 版权声明:本文为博主原创文章,未经博主允许不得转载. ...
随机推荐
- HDU 2669 Romantic(裸的拓展欧几里得)
Romantic Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Su ...
- ESXI5-WIN2008R2安装域控以及额外域笔记
每次安装域控都要找教程,每次都没法一次性搞定.写个笔记吧...主要是给自己看的.写的比较含糊.不清楚的可以直接QQ本人. 1.安装WIN2008R2,192.168.188.10 2.上载SLICET ...
- Git操作行
基础层:-----------------#初始化一个版本仓库git init #复制远程版本库git clone url #添加远程版本库origingit remote add origin ur ...
- MariaDB主从半同步复制详解
半同步复制(Semisynchronous replication) 介于异步复制和全同步复制之间,主库在执行完客户端提交的事务后不是立刻返回给客户端,而是等待至少一个从库接收到并写到relay lo ...
- 分析java类的初始化契机
分析java类的静态成员变量初始化先于非静态成员变量 依上图中当class字节码文件被jvm虚拟机加载到内存中依次经过 连接 验证:对字节码进行验证 准备:给静态变量分配内存并赋予变量类型各自的默 ...
- PHP对全局变量_GET、_POST中特殊字符的过滤
$sVariablesOrder = ini_get( 'variables_order' ); $request = array(); //过滤不安全数据 for ( $i ...
- 关于Python安装官方whl包和tar.gz包的方法详解
Windows环境: 安装whl包:pip install wheel -> pip install **.whl 安装tar.gz包:cd到解压后路径,python setup.py inst ...
- django之管理静态文件
管理静态文件 项目中的CSS.图片.js都是静态文件 配置静态文件 在settings 文件中定义静态内容 STATIC_URL = '/static/' STATICFILES_DIRS = [ o ...
- leetcode515
/** * Definition for a binary tree node. * public class TreeNode { * public int val; * public TreeNo ...
- python实战===python控制键盘鼠标:pynput
Python控制键盘鼠标:pynput 地址:https://pypi.python.org/pypi/pynput 这个库让你可以控制和监控输入设备. 对于每一种输入设备,它包含一个子包来控制和监控 ...