客户端例题解释
来源:互联网 发布:知乐的肉小说有哪些 编辑:程序博客网 时间:2024/06/16 21:07
// cln
package main
import (
"bufio"
"fmt"
"net"
"os"
"time"
)
func getMsg() (msg string) {
reader := bufio.NewReader(os.Stdin)
msg, err := reader.ReadString('\n')
if err != nil {
fmt.Println(err.Error())
}
return
}
func recv(clnSck net.Conn) {
// read msg from server.
buf := make([]byte, 1024)
dataLen, err := clnSck.Read(buf)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(time.Now().Format("2006-01-02 15:04:05"))
fmt.Println(string(buf[:dataLen]))
}
func main() {
// func ResolveTCPAddr(net“一般是tcp,兼容tcp4,6”, addr string“ip地址及端口号(两者均是字符串类型)”)
// (返回 *TCPAddr"结构体,包含ip地址和端口号", os.Error)
//导入一个tcp下的ip地址,srv是一个储存了tcp地址的指针
srv, err := net.ResolveTCPAddr("tcp", "127.0.0.1:6666")
if err != nil {
fmt.Println(err)
return
}
//func DialTCP(net string“同上”, laddr“本地地址,可以为nil”, raddr“远程地址,用上面的srv表示” *TCPAddr“laddr,raddr均是结构体”)
//(返回 c *TCPConn“连接类型的指针”, err os.Error)
//尝试连接这个地址,clnSck是个网络连接流(conn)
clnSck, err := net.DialTCP("tcp", nil, srv)
//以上两句等同于 clnSck, err := net.Dial("tcp", "127.0.0.1:6666")
if err != nil {
fmt.Println(err)
return
}
//将网络连接流的关闭 压入栈中
defer clnSck.Close()
//开启新的线程接收信息
go recv(clnSck)
//从键盘输入新消息到字符串类型msg
msg := getMsg()
//向网络流中写入信息msg(从键盘中获取)
clnSck.Write([]byte(msg))
getMsg()
//clnSck.Close()
}
0 0
- 客户端例题解释
- 解释及例题
- 例题
- 例题
- 例题
- 例题
- 解释从客户端回发的结果
- Android客户端请求服务器端的详细解释
- 网络流 dicnic sap 2种算法详细解释 以及例题POJ1459
- 关于 10 个自增典型例题中例 7 的解释
- C++ DCOM服务器和C#客户端互操作完全解释
- 关于使用PHP向客户端发送文件-示例代码解释
- 简单TCP服务器端和客户端(源代码)附详细解释
- Android客户端请求服务器端的详细解释(附源代码)
- ajax再封装及客户端传输参数问题解释
- Hanol towers [Gym-101243B]———Python语言在编程中的文件读入与输出,例题解释
- 解释
- :(){:|:&};:解释
- 解释型语言与编译型语言
- 2016.11.19
- 数据结构——图知识概要
- poj1979 dfs水题
- 子网掩码、最大主机、最大子网数的计算
- 客户端例题解释
- 第四十二天学习笔记
- Java调用net的webservice故障排除实战分享
- SVN服务器搭建
- 如何解决 内核启动 卡在 Starting kernel ...
- DFS—HDU1010
- 1619-7 张良 十一月十八号总结 [连续第四十九天]
- SDUT 双向队列(队列)
- github比sourceforge好在哪?