[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) 版权声明:本文为博主原创文章,未经博主允许不得转载. ...
 
随机推荐
- [转]SVN 乱码问题
			
以下来自:http://godchenmeng.iteye.com/blog/797727 最近研究SVN.发现在创建补丁包的时候出现这种情况. 在文件顶部不论是什么代码都会变成乱码.在文件中如果有注 ...
 - sys模块的问题,深浅COPY的应用场景,元祖与购物车程序练习-打印彩色\033[31;1m--------\033[0m
			
打印彩色:%s为变量,格式化 print("Added %s into shopping cart,your current balance is \033[31;1m%s\033[0m&q ...
 - 基于Keepalived高可用集群的MariaDB读写分离机制实现
			
一 MariaDB读写分离机制 在实现读写分离机制之前先理解一下三种主从复制方式:1.异步复制:MariaDB默认的复制即是异步的,主库在执行完客户端提交的事务后会立即将结果返给给客户端,并不关心从库 ...
 - [Oracle] 用python插入中文
			
先替换字符串中的\x22 为双引号,\x0A为回车 str2 = '{\x22name\x22:\x22hao\x22 \x0A ,\x22os\x22:\x22other\x22 } print s ...
 - msyqld 的 The user specified as a definer ('root'@'%') does not exist 问题
			
msyqld 的 The user specified as a definer ('root'@'%') does not exist 问题 造成问题:搭建网站时显示内容不完整. 跟踪tomcat日 ...
 - OD 实验(二十) - 对反调试程序的逆向分析(一)
			
程序: Keyfile.dat 里的内容 该文件中要至少有 9 个 ReverseMe.A: 运行程序 用 OD 打开该程序,运行 弹出的是错误的对话框 该程序发现 OD 对它的调试,所以该程序对 O ...
 - 1.Linux下生成密钥
			
1.Linux下生成密钥 ssh-keygen的命令手册,通过”man ssh-keygen“命令: 通过命令”ssh-keygen -t rsa“ 生成之后会在用户的根目录生成一个 “.ssh”的文 ...
 - clutter recoder
			
cin >> ch; cin.get(ch);区别读取输入是否忽略空格.制表等; char ch; ; cout << "Enter characters;enter ...
 - scrapy框架的持久化存储
			
一 . 基于终端指令的持久化存储 保证爬虫文件的parse方法中有可迭代类型对象(通常为列表or字典)的返回,该返回值可以通过终端指令的形式写入指定格式的文件中进行持久化操作. 执行输出指定格式进行存 ...
 - linux条件变量
			
条件变量用于线程之间的通信,和互斥锁一起使用.条件变量用于及时通知等待的线程条件的变化,使线程不至于错过变化. 考虑下面的情况,有AB两个线程对index这个全局变量进行++,一个线程C用于判断,in ...