码迷,mamicode.com
首页 > 其他好文 > 详细

网络编程笔记

时间:2014-09-19 12:08:35      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:style   使用   ar   strong   数据   sp   问题   on   c   

1. 网络数据传输时需要考虑字节序问题,即大端小端问题:

 x86系列CPU都是little-endian的字节序.
网络字节顺序是TCP/IP中规定好的一种数据表示格式,它与具体的CPU类型、操作系统等无关,从而可以保证数据在不同主机之间传输时能够被正确解释。网络字节顺序采用big endian排序方式。
为了进行转换 bsd socket提供了转换的函数 有下面四个
htons unsigned short类型从主机序转换到网络序
htonl unsigned long类型从主机序转换到网络序
ntohs unsigned short类型从网络序转换到主机序
ntohl unsigned long类型从网络序转换到主机序
在使用little endian的系统中 这些函数会把字节序进行转换。

在发送数据之前将主机序转换为网络序,在接收到数据后需要将网络序转换为主机序。

2. 设置路由器虚拟服务器实现外网向内网发送数据包

外网向内网发送的数据包目的IP为路由器IP,路由器根据数据包的目的端口将数据包转发给内网主机。

3.内网和外网通讯

内网先向外网独立IP发送一个TCP报文,路由器会在此时自动建立一个NAT映射,将内网IP和端口号同WAN口IP和端口号对应并缓存,缓存更新时间貌似是50s。其后外网独立IP向内网发报文时,目的IP采用内网所在的路由器WAN口IP,端口还是路由器的映射端口,就可以通信了。

UDP试了,不行。

 

 

网络编程笔记

标签:style   使用   ar   strong   数据   sp   问题   on   c   

原文地址:http://blog.csdn.net/libinjlu/article/details/38963131

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!