golang模拟编程tcp模拟http(转载)
package main import (
"fmt"
"net"
"strconv"
) //用来转化int为string
type Int int func (i Int)toStr()string {
return strconv.FormatInt(int64(i),10)
} func testConn(conn net.Conn){
addr := conn.RemoteAddr()
fmt.Println(addr)
//返回的http消息体
var respBody = "<h1>Hello World<h1>"
i := (Int)(len(respBody))
fmt.Println("响应的消息体长度:"+i.toStr())
//返回的http消息头
var respHeader = "HTTP/1.1 200 OK\n"+
"Content-Type: text/html;charset=ISO-8859-1\n"+
"Content-Length: "+i.toStr()
//拼装http返回的消息
resp := respHeader +"\n\r\n"+ respBody
fmt.Println(resp)
n, _ := conn.Write([]byte(resp))
fmt.Printf("发送的数据数量:%s\n",(Int)(n).toStr())
} func main() {
listen, err := net.Listen("tcp", "127.0.0.1:8888")
if err !=nil{
fmt.Println(err)
return
}
defer listen.Close() //延时关闭 listen for{
conn, err := listen.Accept()
if err !=nil{
fmt.Println(err)
continue
}
go testConn(conn)
}
}

转载地址:https://blog.csdn.net/weixin_37910453/article/details/86679694
golang模拟编程tcp模拟http(转载)的更多相关文章
- golang 网络编程之如何正确关闭tcp连接以及管理它的生命周期
欢迎访问我的个人网站获取更佳阅读排版 golang 网络编程之如何正确关闭tcp连接以及管理它的生命周期 | yoko blog (https://pengrl.com/p/47401/) 本篇文章部 ...
- jmeter测试TCP服务器/模拟发送TCP请求
jmeter测试TCP服务器,使用TCP采样器模拟发送TCP请求. TCP采样器:打开一个到指定服务器的TCP / IP连接,然后发送指定文本并等待响应. jmeter模拟发送TCP请求的方法: 1. ...
- jmeter ---测试TCP服务器/模拟发送TCP请求
jmeter测试TCP服务器/模拟发送TCP请求 jmeter测试TCP服务器,使用TCP采样器模拟发送TCP请求. TCP采样器:打开一个到指定服务器的TCP / IP连接,然后发送指定文本并等待响 ...
- jmeter测试TCP服务器/模拟发送TCP请求 设置16进制发送(转)
转载留存:http://blog.sina.com.cn/s/blog_46d0362d0102v8ii.html 性能测试需要模拟多种场景,经常受制于资源限制,没办法建立贴近实际部署环境的场景.因而 ...
- 银行ATM机工作流程模拟编程
[编程内容] 编程,模拟一个ATM(Automatic Teller Machine,自动取款机)的工作流程.依据帐户信息:姓名.帐号.密码.余额,完成ATM机功能:登录.显示余额.取款.修改密码. ...
- I2C总线完全版——I2C总线的结构、工作时序与模拟编程
I2C总线的结构.工作时序与模拟编程 I2C总线的结构.工作时序与模拟编程I2C总线(Inter Integrated Circuit)是飞利浦公司于上个世纪80年代开发的一种"电路板级&q ...
- Golang核心编程
源码地址: https://github.com/mikeygithub/GoCode 第1章 1Golang 的学习方向 Go 语言,我们可以简单的写成 Golang 1.2Golang 的应用领域 ...
- Golang - 并发编程
目录 Golang - 并发编程 1. 并行和并发 2. go语言并发优势 3. goroutine是什么 4. 创建goroutine 5. runtime包 6. channel是什么 7. ch ...
- 网络编程TCP/IP详解
网络编程TCP/IP详解 1. 网络通信 中继器:信号放大器 集线器(hub):是中继器的一种形式,区别在于集线器能够提供多端口服务,多口中继器,每个数据包的发送都是以广播的形式进行的,容易阻塞网络. ...
随机推荐
- Audio Queue Services Programming Guide(音频队列服务编程指南)
Audio Queue Services 的苹果官方文档: https://developer.apple.com/library/ios/documentation/MusicAudio/Conce ...
- 1M大概多少个字
<?php echo strlen("你"); 保存文件为gbk 输出2 保存文件为utf-8 输出3 说明不同编码占用字节不同 1M=1024kB 1KB = 1024B ...
- Gitlab创建一个项目(二)创建新用户以及分配项目
Gitlab创建一个项目(一) 1.进入gitlab控制台 2.点击“新建用户” 3.点击“Edit”,创建初始密码 4.分配项目,首页进入项目 5.进入Members菜单 6.选择用户 7.赋予权限 ...
- ansible运维工具,dhcp,cobbler
1.借助Ansible Playbook自动化搭建LNMP环境(可借助yum) 通过yum方式安装ansible,先安装epel仓库 yum install epel-release 安装epel仓库 ...
- python函数调用时参数传递方式
python函数调用时参数传递方式 C/C++参数传递方式 对于C程序员来说,我们都知道C在函数调用时,采用的是值传递,即形参和实参分配不同的内存地址,在调用时将实参的值传给实参,在这种情况下,在函数 ...
- 如何利用python教程判断一个 IP 在不在线?
假设今天老板给我们一个任务,让我们判断一下一个 IP 在不在线.我们随手用 python 写一个 ping IP 的代码: import os host = input('请输入要检测的 IP : ' ...
- Python_soket
1.socket建立连接,服务端,客户端代码如下: import socket #服务端,AF_INET:IPV4地址,SOCK_STREAM:TCP协议 sk=socket.socket(socke ...
- php将原数组倒序array_reverse()
1.数组倒序排列 $arr = array(1,2,3); $arr = array_reverse($arr); print_r($arr);
- HTML常用全部代码--第二部分--JAVASCRIPT( 小伙伴要牢记😁😁😁😁 )
html代码大全--js部分:小技巧 (1) 点击关闭窗口<a href="javascript.:top.window.close();">点击关闭窗口</a& ...
- 团队项目-Beta冲刺
请大家在每次作业开头添加格式描述: 这个作业属于哪个课程 <课程的链接> 这个作业要求在哪里 <作业要求的链接> 团队名称 <写上团队名称>(附上团队博客链接) 这 ...