- 1、本文档共35页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C网络socket编程指南
Socket 使用Win32 API 一個網路通訊程式 什麼是Socket 凡是網路兩端互相連線傳送資料時的溝通介面就是 socket,是一個網路系統的通訊函式庫,在任何作 業系統中可以通用 主要的5大函式: socket() ? 電話 bind() ? 線路(第幾分機?) listen() ? 準備好接聽(啟用鈴聲) connect() ? 撥電話出去 accept() ? 對方接聽 Socket函式,指定通訊協定 socket ( )函式 int SOCKET socket( int af, int type, int protocol ); af :位址資料族系(family),用不同方式表示網路位址 type:通訊方式 Protocal:傳輸協定編號 回傳值:-1表示建立socket發生錯誤 若成功則回傳非負整數,稱為socket descriptor (socket描述子) 選項設定 af: 選擇AF_INET ? Internet address family 對應的網路位址資料格式是 unsigned long(無號長整數) type:SOCK_STREAM 虛擬路徑連接方式(TCP用) SOCK_DGRAM 資料包方傳遞式(UDP用) protocal: 選擇IPPROTO_TCP (TCP通訊協定) 或寫入0,交由系統設定 範例 SOCKET sock; //宣告 sock = socket( //設定 AF_INET, SOCK_STREAM, IPPROTO_TCP ); Bind函式,指定本地端位置 Bind()函式 int bind( SOCKET s, const struct sockaddr* name, int namelen ); s : 指定好通訊協定的socket name : 指定本地端位址,資料格式為sockaddr namelen : name之資料長度(單位byte) 回傳值:-1表錯誤,否則為0 Sockaddr_in 格式(IPv4用) struct sockaddr_in { short sin_family; u_short sin_port; struct in_addr sin_addr; char sin_zero[8]; }; sin_family:位址資料族系,同樣設定為AF_INET sin_port:主機開啟的通訊埠號 用htons() 寫入 sin_addr:主機IP位址 in_addr資料格式 sin_zero[8]:目前沒用處,保留以後使用 in_addr格式 typedef struct in_addr {union { struct {u_char s_b1,s_b2,s_b3,s_b4;} S_un_b; struct {u_short s_w1,s_w2;} S_un_w; u_long S_addr;} S_un; } in_addr; 使用了union的結構體,實際上的大小是一個32bit的長整數 所以只要注意u_long S_addr這個變數 將IP對此變數寫入便可 函式庫引入的標頭檔應該會有定義 #define s_addr S_un.s_addr 此後只要對前一頁之變數sin_addr.s_addr存取便可 寫入時使用inet_addr(“IP位址字串”)轉換成unsigned long 範例 SOCKET Sock; sockaddr_in saServer; Sock = socket( AF_INET, SOCK_STREAM, IPPROTO_TCP ); // 設定本機通訊用的位址 saServer.sin_family = AF_INET; saServer.sin_port = htons(5150); //啟用5150 port saServer.sin_addr.s_addr = inet_addr(“140.115.65.30”); //設定本機IP // 呼叫Bind函式 bind(Sock,(SOCKADDR*) saServer, sizeof(saServer) ); Listen函式 設定socket等待外部連線 listen()是使Socket進入等待連線狀態,等待客戶端(Client) 連上線來,很顯然的呼叫此函式的主機,功能會是一台伺服器(Server)。 如果有Client想要連過來,此時可以呼叫connect()來跟Server 連線。而Se
您可能关注的文档
- 1.学生顶岗手册.doc
- 专题一 坐标曲线类考题.ppt
- 《顶岗实习》韩海平.doc
- 顶岗工作总结实习生发言文稿.doc
- 英语口语微课.ppt
- 微课中考语文.pptx
- 化学微课评析.ppt
- 顶岗支教申请表.doc
- 顶岗实习模式研究.doc
- 噪声规范编制总体思路(邵总).ppt
- 第17课 明朝的灭亡和清朝的建立 巩固练习 2024-2025学年下期初中历史统编版七年级下.docx
- 人教版(2019)必修三 Unit 1 Festivals and Celebrations Lis.pptx
- 人教版(2019)必修三 Unit 3 Diverse Cultures Reading for W.pptx
- 人教版(2019) 必修第一册 Unit 1 Teenage Life Reading and.pptx
- 人教版(2019)必修第一册Unit 2 Travelling Around Reading and.pptx
- 六年级单元作文复习.pptx
- 【作文写作法则】(初中语文)第10讲 常考应用文写作模板 学案.doc
- Unit 8 Once upon a Time 重点语法 专题练 2024-2025学.docx
- 人教版(2019)必修第一册Unit 3 Sports and fitness Reading fo.pptx
- 期末综合模拟试题 2024-2025学年下期初中道德与法治统编版八年级下册 (1).docx
文档评论(0)