1、Port 1Port nPort2Port3你的上网计算机Web网站POP3服务器(收信)SMTP服务器(发信)Windows计算机UnixLinux主机Port80Port110Port25Port139Port23TCP/IP协议(Protocol)Internet世界TCP/IP协议(Protocol)Windows系统Port80Port110Port25Port139Port23Port?IEOutlook Express资源管理器Telnet各种网络软件连接远程的各种服务器、主机或一般个人电脑端口端口2323端口端口说明说明端口端口2121FTPFTP文件下载上传服务文件下载上传服
2、务TelnetTelnet主机连接服务主机连接服务端口端口2525SMTPSMTP发信服务发信服务端口端口8080HTTPHTTP网页服务网页服务端口端口110110POP3POP3收信服务收信服务端口端口139139NetBIOSNetBIOS网上邻居、资源管理器连接服务网上邻居、资源管理器连接服务应用程序应用程序1应用程序应用程序2应用程序应用程序N网络编程接口(网络编程接口(Winsock)网络通信服务接口(网络通信服务接口(TCP/IP)操作系统(操作系统(Windows)硬件接口(网卡)硬件接口(网卡)宏宏MAKEWORD(X,Y)生成生成Winsock版本的正确值(版本的正确值(X
3、为为低位,低位,Y为高位,两数连接为高位,两数连接 而成一数而成一数)unsigned long inet_addr(const char FAR*cp);char FAR*inet_ntoa(struct in_addr in);struct hostent FAR*gethostbyname(const FAR*name)struct hostent char FAR*h_name;/正式的主机名正式的主机名 char FAR*h_aliase;/主机备用名主机备用名 short h_addrtype;/返回的地址家族,对于返回的地址家族,对于Winsock,该参数值总为该参数值总为AF_
4、INET short h_length;/地址长度,一般为地址长度,一般为4 char FAR*h_addr_list/IP地址链表地址链表struct hostent FAR*gethostbyaddr(const char FAR*addr,int len,int type)struct servent FAR*getservbyname(const char FAR*name,const char FAR*proto)struct servent char FAR*s_name;/正规的服务名正规的服务名 char FAR*s_aliases;/服务别名队列服务别名队列 short s_
5、port;/表示连接该服务时需要用到的表示连接该服务时需要用到的端口号,返回的端口号是以网络字节顺序排序的端口号,返回的端口号是以网络字节顺序排序的char FAR*s_proto/连接该服务时用到的协议名连接该服务时用到的协议名struct servent FAR*getservbyport(int port,const char FAR*proto)int PASCAL FAR getpeername(SOCKET s,struct sockaddr FAR*name,int FAR*namelen)int PASCAL FAR getsockname(SOCKET s,struct so
6、ckaddr FAR*name,int FAR*namelen)SOCKET socket(int af,int type,int protocol)SOCKET socket(int af,int type,int protocol)int bind(SOCKET s,const struct sockaddr*name,int namelen)int bind(SOCKET s,const struct sockaddr*name,int namelen)struct sockaddr_in short sin_family;u_short sin_port;struct in_addr
7、sin_addr;char sin_zero8TCP/IP协议下的协议下的Winsock地址结构:地址结构:IP地址的结构地址的结构struct in_addr union struct u_char s_b1,s_b2,s_b3,s_b4;S_un_b;structu_short s_w1,s_w2;S_un_w;u_long s_addr;S_un;struct in_addr union struct u_char s_b1,s_b2,s_b3,s_b4;S_un_b;structu_short s_w1,s_w2;S_un_w;u_long s_addr;S_un;int PASCAL
8、 FAR listen(SOCKET s,int backlog)SOCKET PASCAL FAR accept(SOCKET s,struct sockaddr FAR*addr,int FAR*addrlen);SOCKET PASCAL FAR accept(SOCKET s,struct sockaddr FAR*addr,int FAR*addrlen);int PASCAL FAR connect(SOCKET s,struct sockaddr FAR*name,int namelen);int PASCAL FAR closesocket(SOCKET s)int PASCA
9、L FAR shutdown(SOCKET s,int how)int PASCAL FAR send(SOCKET s,const char FAR*buf,int len,int flags)int PASCAL FAR recv(SOCKET s,const char FAR*buf,int len,int flags)int PASCAL FAR sendto(SOCKET s,/套接字的描述符const char FAR*buf,/存放要传送的数据的缓冲区int len,/buf的长度int flags,/函数的调用方式const struct socketaddr FAR*to,/
10、数据要送达的套接字地址int tonlen /to的大小)int PASCAL FAR recvfrom(SOCKET s,/套接字的描述符char FAR*buf,/存放接收到的数据的缓冲区int len,/buf的长度int flags,/函数的调用方式struct socketaddr FAR*from,/数据来源的套接字地址int FAR*fromlen /from的大小)打开打开Socket本机网卡地址本机网卡地址绑定绑定等待连接等待连接侦听侦听连接中连接中接受连接受连接请求接请求关闭关闭Socket接收接收数据数据发送发送数据数据打开打开Socket本机网卡地址本机网卡地址绑定绑定
11、连接服务器连接服务器连接连接关闭关闭Socket接收接收数据数据发送发送数据数据socket()bind()connect()send()recv()closesocket()侦听套接字侦听套接字连接套接字连接套接字socket()bind()listen()accept()创建连接套接字创建连接套接字recv()send()closesocket()closesocket()socket()bind()sendto()recvfrom()closesocket()socket()bind()recvfrom()sendto()closesocket()int PASCAL FAR sendt
12、o(SOCKET s,/套接字的描述符const char FAR*buf,/存放要传送的数据的缓冲区int len,/buf的长度int flags,/函数的调用方式const struct socketaddr FAR*to,/数据要送达的套接字地址int tonlen /to的大小)int PASCAL FAR recvfrom(SOCKET s,/套接字的描述符char FAR*buf,/存放接收到的数据的缓冲区int len,/buf的长度int flags,/函数的调用方式struct socketaddr FAR*from,/数据来源的套接字地址int FAR*fromlen /
13、from的大小)int setsockopt(SOCKET s,int level,int optname,const char FAR*optval,int optlen);struct ip_mreqstruct in_addr imr_multiaddr,/指定要加入的多播组的地址struct in_addr imr_interface,/指定要送出多播数据的本地IP地址int WSAAsyncSelect(SOCKET s,HWND hWnd,unsigned int wMsg,long lEvent);LRESULT CALLBACK WindowProc(HWND hWnd,UNIT uMsg,WPARAM wParam,LPARAM lParam,);结束语当你尽了自己的最大努力时,失败也是伟大的,所以不要放弃,坚持就是正确的。When You Do Your Best,Failure Is Great,So DonT Give Up,Stick To The End谢谢大家荣幸这一路,与你同行ItS An Honor To Walk With You All The Way演讲人:XXXXXX 时 间:XX年XX月XX日