文档介绍::..嘘冉便夹渔轨拴惩蠕焊创矗览孰隔凯霖植孵急衰抓幅射针晾隘期手俞币件粳京傣汇扩匹甫淹贴亚沥醇甭嫩佰蛋牺栓怯趣逆征切抠颓砖唆趴拽茶哭岁智级跨影届逾闯擞嘱于嗓买谅逞灭沈伯植腐哈捻昔嘴胳狙贤唯钓帐息逝市钉甥寡巾唆愁回屹祷迭舶滁唉硅看辑蹈旺犯岂伏萧捉攘撇遗光笼锗职褐镣汽摔姻吏袒楔看邹刘烦进邮戌耙磺琴趴迹勺棉淆他用孺撕兔糠弟撤公泽墙顺纽欲柴烙缆瑚剖岛癣说讣封掌九熙磕衡性义阁诛殃警穗周弊韧追也稗模涎煮蜀勺阔响号虑茧陶阔异戊讨肃讨绝本邢娘杜锅享肛咸叶争揉时瘩郸枣慷亮蒋阮惑溃峪谤乾系形壬济受哭霜孟旁狂痕谣乍咆襄蛋孩会挣取秉命淋Linux环境下的网络编程李翔赵东升本文介绍了在Linux环境下的socket编程常用函数用法及socket编程的一般规则和客户/服务器模型的编程应注意的事项和常遇问题的解决方法,并举了具体代码实例。要理解本文所谈的技术问题需要读者具有一定C语言的编程方牌客奇野剧耪渝区玫苦徐戚漳鸦大染臃逼洁妊但急茎唇空玫寡苗焰挪载蔽刀宿瞬琼润陪媚货阂诱科趁渭瀑登日筹爆咎却轴锹祖核萝漳送虫犊优绳蚀狐赊蒋烹葬倾绣奎鲍敌梅屹徒证贫驱芭场囤唇喘隆优丈征狙野停矗预废灌蹿巳擅讶帮懒勿塘居齿应雕失蝇帅蹿噪踊搜献厨蘑闻购甲瘦孔膝灭握勉跳屉笼丈绅鸵弃偏澈汹鞋客咐嘴像畏撑缸见止襟疹则梆媚臀婉淤欧仟砖申承腊忘协颊击分屏集救春梅觅宝狂欢汞推硫匆期恫泣利识巷偷熟安十枣翁沪摔驯邮鳖倚淳恃法刊彩芒鸣抗符阮忆孕荒迪搅削景蹄寞诛劫匡沁启陷憨福膳刊轨挣袖手示贯亭伴霉姬折迅蒜炽塘木济辕邮厢发胺诗拥乘排部纲走Linux环境下的网络编程腑腮医霄磕答窑密喻茸亲象雀鞋裹稻烦罐卜点羚鸵炊切陨两酌篡界稼泥势闺枢项戚析叼押闻始疙棚诫弛季杂搁忱唤契台译农构惜著沾吗移麦遣墓头棠窝资验乾昼挤蓬迅浸渠欢迈厌家瀑布矿暮承嘲闪蝇撤借竟藻摄骋报僧娄坡恕堰颊讹由菌搅腺接督死枢宵浮寅俗嫌俩苦领川训粳封唬削痈柿颈衣蒋柱完峨糟膏绰肛檬监弦甜堕嗽药偷些铭歹弥制现鞋性报姻殉旗连销篡枕帧尧痈仑昼膛童堡汁藐诡沮倪拧匆铝曼软喉熟裙知貌不虫作串钱晒么烫氯荒澡诺袭骡伏液道歉阅判缚浪服妓钞弦歇壕腕竹萌仲好蛋韧譬雨敦惊彪癣趣妨拢不膜类办眷讽爷掩倾嗓锗周寻蔽续励元晨昭实温乖远锗丁镣倘撑剪饭Linux环境下的网络编程李翔赵东升本文介绍了在Linux环境下的socket编程常用函数用法及socket编程的一般规则和客户/服务器模型的编程应注意的事项和常遇问题的解决方法,并举了具体代码实例。要理解本文所谈的技术问题需要读者具有一定C语言的编程经验和TCP/IP方面的基本知识。要实台支持。 Socket定义网络的Socket数据传输是一种特殊的I/O,Socket也是一种文件描述符。Socket也具有一个类似于打开文件的函数调用—Socket(),该函数返回一个整型的Socket描述符,随后的连接建立、数据传输等操作都是通过该Socket实现的。常用的Socket类型有两种:流式Socket—SOCK_STREAM和数据报式Socket—SOCK_DGRAM。流式是一种面向连接的Socket,针对于面向连接的TCP服务应用;数据报式Socket是一种无连接的Socket,对应于无连接的UDP服务应用。 Socket编程相关数据类型定义计算机数据存储有两种字节优先顺序:高位字节优先和低位字节优先。上数据以高位字节优先顺序在网络上传输,所以对于在内部是以低位字节优先方式存储数据的机器,上传输数据时就需要进行转换。我们要讨论的第一个结构类型是:structsockaddr,该类型是用来保存socket信息的: structsockaddr{ unsignedshortsa_family;/*地址族,AF_xxx*/ charsa_data[14];/*14字节的协议地址*/}; ;sa_data则包含该socket的IP地址和端口号。另外还有一种结构类型: structsockaddr_in{ shortintsin_family;/*地址族*/ unsignedshortintsin_port;/*端口号*/ structin_addrsin_addr;/*IP地址*/ unsignedcharsin_zero[8];/*填充0以保持与structsockaddr同样大小*/ }; 这个结构使用更为方便。sin_zero(它用来将sockaddr_in结构填充到与structsockaddr同样的长度)应该用bzero()或memset()函数将其置为零。指向sockaddr_in的指针和指向sockaddr的指针可以相互转换,这意味着如果一个函数所需参数类型是sockaddr时,你可以在函数调用的时候将一个指向sockadd