套接字socket编程 日文本讲义.pdf
《套接字socket编程 日文本讲义.pdf》由会员分享,可在线阅读,更多相关《套接字socket编程 日文本讲义.pdf(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、12上流2進整数値順序。Big Endian使用。下位上位Big EndianLittle Endian(Byte Order)2進整数値(IP、長等)上格納順序。以下2通。1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 1 0128102300 1 1 1 1 0 0 0 0 1 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 112810230IP 128.10.2.30Big EndianLittle EndianLittle Endian変換Big EndianBig Endia
2、n312810下位上位Big EndianLittle Endian10128変換変換ntohshtons12810下位上位Big Endian12810230下位上位Big EndianLittle Endian30210128ntohlhtonl12810230下位上位Big Endian4変換変換localshort=ntohs(netshort)short型整数変換netshort:(2)整数localshort:(2)整数network to host shortlocallong=ntohl(netlong)long型整数変換netlong:(4)整数locallong:(4)整数
3、network to host longnetshort=htons(localshort)short型整数変換localhort:(2)整数netshort:(2)整数host to network shortnetlong=htonl(locallong)long型整数変換locallong:(4)整数netlong:(4)整数host to network long5IPIP操作操作(1)(1)address=inet_addr(string)address=inet_network(string)IP返却IP返却付10進表現IP32表現IP変換char *string:付10進表現IP
4、(文字列)in_addr_t address:32表現IP(整数)result=inet_aton(string,inaddrPointer)char *string:付10進表現IP(文字列)struct in_addr *inaddrPointer:in_addr 構造体(32表現IP(整数)int result:実行結果(有効:0以外、無効:0)10000000 00001010 00000010 00011110128.10.2.30付10進表現(文字列)32表現inet_addr,inet_networkinet_atonstruct in_addrin_addr_t s_addr;
5、typedef unsigned int in_addr_t;6IPIP操作操作(2)(2)str=inet_ntoa(internetaddr)32表現IP付10進表現IP変換struct in_addr internetaddr:in_addr 構造体(32表現IP(整数)char *str:付10進表現IP(文字列)10000000 00001010 00000010 00011110128.10.2.30付10進表現(文字列)32表現inet_ntoa7IPIP操作操作(3)(3)連結連結internetaddr=inet_makeaddr(net,local)net:32表現loca
6、l:整数表現internetaddr:32表現IPIP部分部分分割部分部分分割net=inet_netof(internetaddr)internetaddr:32表現IPnet:32表現local:整数表現local=inet_lnaof(internetaddr)IP128.10.2.2128.10.0.00.0.2.2inet_makeaddrinet_netofinet_lnaofB(実際32表現)8(socket):通信通信処理用端点(出入口):通信通信処理用端点(出入口)対、読取、書込可能特定相手対応、生成可能使相手与(UDP)相手対応、使相手指定(TCP)組双方向通信形成子親引継
7、参照回数管理、参照、廃棄fd=create()記述子sd1=socket()read(fd)/write(fd)recv(sd1)/send(sd1)記述子sd2=socket()send(sd2)/recv(d2)生成生成格納手段抽象化格納手段抽象化通信手段抽象化通信手段抽象化fd=open()9TCPTCP利用利用socketbindlistenacceptsend/recvclosesocketconnectsend/recvclose生成自身、番号設定受付用待行列(窓口)設定受付開始生成、番号指定、要求確立送受信消去消去側側10UDPUDP利用利用socketbindrecvfroms
8、endtorecvfromclose側socketbindsendtorecvfromsendtoclose側生成自身、番号設定消去、番号指定、送信送受信送信受信、番号取得11生成、消去生成、消去sockdes=socket(pf,type,protocol)生成生成(、相手無関係生成)int pf:int type:通信型PF_INET:TCP/IPPF_APPLETALK:AppletalkPF_LOCAL:(同一内間通信)int protocol:(0指定選択。TCP,UDP0可)SOCK_STREAM:配送SOCK_DGRAM:配送SOCK_RAW:低用int sockdes:記述子(
9、整数)終了(消去)終了(消去)close(sockdes)int sockdes:記述子参照0、消滅(定義/usr/include/bits/socket.h)12設定設定bind(sockdes,(struct sockaddr*)&localaddr,addrlen)int sockdes:記述子struct sockaddr_in localaddr:指定sockaddr_in構造体socklen_t addrlen:sockaddr_in構造体int 戻値:処理結果(正常時1、異常時-1)0-12-56-910-13AF-INET(2)番号IP未使用(0)未使用(0)sockaddr構
10、造体TCP/IPsockaddr構造体(sockaddr_in)INADDR_ANY指定持任意対、送受信番号0指定、番号割当自身自身IP()、番号結合()、番号結合(注)socklen_t int 同13sockaddr_insockaddr_in構造体設定構造体設定struct sockaddr-insa_family_tsin_family未使用(0)in_port_tsin_portstruct in_addr sin_addr未使用(0)struct sockaddr-in 名前;名前.sin_family=AF_INET;名前.sin_port=htons(0);名前.sin_add
11、r.s_addr=htonl(INADDR_ANY);struct sockaddr-in 名前;名前.sin_family=AF_INET;名前.sin_port=htons(番号);名前.sin_addr.s_addr=inetaddr();見(定義/usr/include/netinet/in.h)typedef unsigned short int sa_family_t;typedef unsigned short int in_port_t;in_addr_t s_addrstruct in_addrtypedef unsigned int in_addr_t;struct soc
12、kaddr-in 名前;名前.sin_family=AF_INET;名前.sin_port=htons(番号);名前.sin_addr.s_addr=htonl(INADDR_ANY);14connect(sockdes,(struct sockaddr*)&destaddr,addrlen)相手相手IP、番号結合、番号結合相手設定相手設定int sockdes:記述子struct sockaddr_in destaddr:相手指定sockaddr_in構造体socklen_t addrlen:sockaddr_in構造体int 戻値:処理結果(正常時1、異常時-1)AF_INET(TCP/I
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 套接字socket编程 日文本讲义 套接 socket 编程 日文 讲义
限制150内