1.协议的特征

面向消息的和基于流的

面向连接的和面向无连接的

2.端口分为三类:“已知”端口、已注册端口、动态和私用端口

0~1023 IANA控制,为固定服务保留的

1024~49151 已注册端口,供普通用户的进程或程序使用

49152~65535 动态和私有端口

3.IP地址

通过inet_addr函数可以将一个点式IP地址转换成一个32位的无符号长整数。

特殊地址INADDR_ANY允许服务器应用监听主机上每个网络接口。

特殊地址INADDR_BROACAST用于在一个IP网络中发送广播UDP数据报。

5.大端模式和小端模式

网络字节一般是大端模式(低字节存储在高地址上)

二、Winsocket

1.打开winsocket

调用WSAStartup

2.释放winsocket

调用WSACleanup

3.字节转换

主机字节->网络字节

htol()、htos()

网络字节->主机字节

ntohl()、ntohs()

4.IP地址

inet_addr: 将一个点式IP地址转换成一个32位的无符号长整数

inet_ntoa: 将一个sockaddr_in地址转换成字符串

5.获取主机信息

gethostbyname()

gethostbyaddr()

6.创建套接字

socket()

7.ioctlsocket()控制套接口的模式

//例:设置一个非锁定模式套接字

SOCKET s;

unsigned long ul = 1;

int nRet;

s = socket(AF_INET,SOCK_STREAM,0);

nRet = ioctlsocket(s,FIONBIO,(unsigned long *)&ul);

windows网络编程的更多相关文章

  1. [转]Windows网络编程学习-面向连接的编程方式

    直接附上原文链接:windows 网络编程学习-面向连接的编程方式

  2. Windows网络编程 2 【转】

    Windows网络编程使用winsock.Winsock是一个基于Socket模型的API,在Windows系统中广泛使用.使用Winsock进行网络编程需要包含头文件Winsock2.h,需要使用库 ...

  3. Windows 网络编程

    网络编程 API ,失败返回 -,错误代码 WSASYSNOTREADY 表示基础网络子系统没有准备好网络通行,WSAVERNOTSUPPORTED 表示 Socket 版本不支持,WSAEINPRO ...

  4. windows网络编程的一些理论

    参考自<VC++深入详解> 这是我在看书时记录下来的东西. 注:下面的Socket其实都应该是socket 第14章网络编程 Socket是连接应用程序与网络驱动程序的桥梁,Socket在 ...

  5. Windows网络编程(C/C++服务器编程)

    Windows服务器网络编程 Linux服务器网络编程

  6. windows 网络编程[转]

    利用winsock编写网络应用程序服务端的步骤简述如下WSAStartup 初始化网络编程库 socket 创建套接字 bind 指定地址.端口,绑定套接字 listen 进入监听状态 accept ...

  7. Windows网络编程笔记4 -- Winsock 协议相关知识

     Win32平台上的Winsock编程,Winsock是一个与协议无关的接口.以下协议是我们需要了解的: 网络协议的特征包括: 1.  面向消息 2.  面向连接和无线接 3.  可靠性和次序性 4. ...

  8. Windows网络编程笔记1

    第一部分 传统网络API 传统的网络接口NetBIOS.重定向器.邮槽.命名管道等.第一,NetBIOS(Network Basic Input/Output System, NetBIOS)“网络基 ...

  9. windows网络编程-2015.12.29

    在windows环境下,使用netstat命令查看网络状态,具体命令如下所示: netstat -ano | findstr listenport 在windows环境下,创建udp程序接收端,具体代 ...

  10. Windows网络编程笔记6 --- WinSock I/O 控制方法

    Windows提供了两种方式“套接字模式”和“套接字I/O模型”,可对一个套接字上的I/O行为加以控制.套接字模式用于决定在随一个套接字调用时,那些 Winsock函数的行为.其中的模型包括括sele ...

随机推荐

  1. 跟我从零基础学习Unity3D开发--资源打包篇(AssetBundle)

    好久没更新了,一直在加班敢项目进度.这里和关注我的博客的童鞋表示一下歉意!这里有我录的Unity3D从零开始的视频教程大家可以关注一下:http://www.imooc.com/view/555  视 ...

  2. java certificate 工具 portecle.sourceforge.net

    https://sourceforge.net/projects/portecle/?source=directory 当需要处理java证书的时候这个是个好工具.省得敲命令了.

  3. Microsoft.VisualStudio.TestTools.UnitTesting 命名空间

      类 说明 AfterAssemblyCleanupEventArgs 为 AfterAssemblyCleanup 事件提供数据. AfterAssemblyInitializeEventArgs ...

  4. 51Nod-1136 欧拉函数

    51Nod: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1136 1136 欧拉函数 基准时间限制:1 秒 空间限制: ...

  5. __delattr__\__delitem__

    class Foo: def __init__(self,name): self.name=name def __getitem__(self, item): print(self.__dict__[ ...

  6. PHP常用框架

    1.Thinkphp  thinkphp是国内开发的框架,它有比较易读的手册,和大量的网上资源,所以我推荐大家首选thinkphp. 2.CodeIgniter  前一段时间我用过codeignite ...

  7. 魔术常量__DIR__

    在PHP5.3中,增加了一个新的常量__DIR__,指向当前执行的PHP脚本所在的目录. 例如当前执行的PHP文件为 /www/website/index.php 则__FILE__等于'/www/w ...

  8. 理解DOM

    http://www.cnblogs.com/chaogex/p/3959723.html 文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标志语言 ...

  9. 如何学习Oracle

    如何学习Oracle?分清几个概念是关键     经常有一些Oracle的初学者问到以下几个问题,这里集中解答一下,希望对大家有帮助.   1.如果有一定的数据库基础,知道SQL是怎么回事,即使写不出 ...

  10. sde用户下使用sqlplus登录错误ORA-12547: TNS:lost contact

    环境:linux + oracle +arcsde   解决:root用户下增加$ORACLE_HOME/bin/oracle文件的s权限 [oracle@localhost bin]$ chmod ...