网络编程学习笔记(一)-----socket
来源:互联网 发布:hp128fn网络打印设置 编辑:程序博客网 时间:2024/05/02 02:33
今天开始学习Linux的C++网络编程。
以前也用过一点socket,但是没有总结过,今天重新复习,然后总结之。
首先介绍一些数据类型:
sockaddr_in
sockaddr_un
sockaddr
这些结构体的定义虽然看起来不同,但是长度是相同的,而且对于处理而言,sockaddr_in显得最为方便,但是为了兼容链接,bind等函数的接口,需要做一个安全的强制类型转换 :
(struct sockaddr*)&some_sockaddr_in_definition
剩下一个要点就是理解网络连接的基本过程:
对于服务器端,首先创建socket,然后填写socketaddr_in的内容,这里需要注意的是sin_port的填写需要通过htons()函数对port进行转换。
//htons函数将一个16位数从主机字节顺序转换成网络字节顺序
1 bind()绑定端口
2 listen()
3 accept()等待client的连接
4 解析用户的数据
5 send()发送给用户数据
循环执行3-5
代码如下:
对于客户端来说,情况要更简单一些:
1 构造socket,socketaddr_in,这些是和server相同的,不同的是需要构造一个hostent类型的数据
该实体的构造可以调用函数gethostbyname()(或者为gethostbyaddr())函数来实现。
2 connect()
3 sent()
4 recv()
- 网络编程学习笔记(一)-----socket
- 网络编程学习笔记一:Socket编程
- 网络编程学习笔记一:Socket编程
- 网络编程学习笔记一:Socket编程
- 网络编程学习笔记一:Socket编程
- 网络编程学习笔记一:Socket编程
- 网络编程学习笔记一:Socket编程
- 网络编程学习笔记一:Socket编程
- 网络编程学习笔记一:Socket编程
- 网络编程学习笔记一:Socket编程
- 网络编程学习笔记一:Socket编程
- 网络编程学习笔记一:Socket编程
- 网络编程学习笔记一:Socket编程
- 网络编程学习笔记一:Socket编程
- 网络编程学习笔记一:Socket编程
- 网络编程学习笔记一:Socket编程
- 网络编程学习笔记一:Socket编程
- 网络编程学习笔记一:Socket编程
- 正则基础之——非捕获组
- 键盘各键及对应编码
- 多种发动机,手枪的机械原理图 动画图解
- 登陆Oracle10g控制台时显示“Io 异常:Unknown host specified”
- GDB 反向调试(Reverse Debugging)
- 网络编程学习笔记(一)-----socket
- linux下fork的运行机制
- 第一阶段:Java初级 ------- GUI
- 重载operator new与operator delete构建内存池
- 小议SQL_Server主键和自动编号问题
- [创新杯]貌似是 桶装蜂蜜问题
- java 跟.net webservice 互通问题(2)
- [创新杯] 喝酒的问题?
- 布局NEW操作符