⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 如何编写linux下的客户机-服务器软件-xxlinux_com.htm

📁 如何编写linux的客户端与服务器的教程,简单实用
💻 HTM
📖 第 1 页 / 共 5 页
字号:
            sin_zero[8];<SPAN style="DISPLAY: none">it6Linux联盟</SPAN><BR>};<SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR>sin_family一般为AF_INET,sin_port为端口号,由于使用不同字节顺序的机器必须作转换,故应使用宏命令htons(host 
            to network 
            short)来转换端口号,sin_addr将置为INADDR_ANY。这三个值设置完成后*address参数才有意义。在编写代码时,应先设置*address参数内部各成员变量的值,再调用bind。<SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR><SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR>(3)listen<SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR>调用方式:<SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR>#include <SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR>#include <SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR><SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR>int listen(int s,int 
            backlog);<SPAN style="DISPLAY: none">it6Linux联盟</SPAN><BR><SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR>简要说明:<SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR>本函数使socket端口能够接受从客户机来的连接请求,正常调用返回0,出错返回-1。<SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR>s参数为socket产生的文件描述符,backlog为所能接受客户机的最大数目。<SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR>socket,bind,listen 
            三个函数的综合调用最终在服务器上产生一个能接受客户机请求的监听文件描述符s。<SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR><SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR>(4)accept<SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR>调用方式:<SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR>#include <SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR>#include <SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR><SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR>int accept(int s,struct 
            sockaddr *address,int *address_len);<SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR><SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR>简要说明:<SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR>当有客户机发出连接请求时,此函数初始化这个连接。正常调用返回与客户机通信的通信文件描述符,出错返回-1。参数s为socket调用返回的文件描述符,address将用来存储客户机的信息,此信息由accept填入,当与客户机连接时,客户机的地址与端口将填到此处。address_len是客户机地址长度的字节数,也由accept填入。<SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR><SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR>(5)connect<SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR>调用方式:<SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR>#include <SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR>#include <SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR><SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR>int connect(int s,struct 
            sockaddr *address,size_t address_len);<SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR><SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR>简要说明:<SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR>客户机调用socket建立传输端口后,调用connect来建立与远程服务器相连的连接线路。<SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR>此函数的参数调用同bind。<SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR><SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR>(6)inet_addr<SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR>调用方式:<SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR>#include <SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR>#include <SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR>#include <SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR><SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR>in_addr_t inet_addr(const 
            char *addstring);<SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR><SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR>简要说明:<SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR>此函数将字符串addstring表示的网络地址(如192.168.0.1)转换成32位的网络字节序二进制值,若成功返回32位二进制的网络字节序地址,若出错返回 
            INADDR_NONE。INADDR_NONE是32位均为1的值(即255.255.255.255,它是Internet的有限广播地址),故如果要转换的addstring是255.255.255.255,函数调用将失败。<SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR><SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR>(7)fork<SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR>调用方式:<SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR>#include <SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR>#include <SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR><SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR><SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR>pid_t fork(void);<SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR><SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR>简要说明:<SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR>fork的作用是拷贝父进程的内存映象来创建子进程,两个进程将接着fork后的指令继续执行。 
            事实上它返回两个进程控制号,对于父进程它返回子进程的进程ID,对于子进程它返回0。<SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR><SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR>可用下边的代码调用fork:<SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR><SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR>pid_t childpid;<SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR>if((childpid=fork())=-1){<SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR>perror("The fork 
            failed");<SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR>exit(1);<SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR>}<SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR>else if(child==0){<SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR>调用子进程;<SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR>}<SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR>else if(child&gt;0){<SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR>调用父进程;<SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR>}<SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR><SPAN 
            style="DISPLAY: none">it6Linux联盟</SPAN><BR><A 
            href="http://www.xxlinux.com/">Linux联盟</A>收集整理 
            ,转贴请标明原始链接,如有任何疑问欢迎来本站<A 
            href="http://bbs.xxlinux.com/">Linux论坛</A>讨论</FONT></FONT></FONT></TD>
          <TD width=8></TD></TR>
        <TR>
          <TD></TD>
          <TD>
            <DIV align=right>分页:<A 
            href="http://www.xxlinux.com/linux/article/development/soft/20061016/5033.html">[<STRONG>1</STRONG>]</A>&nbsp;<A 
            href="http://www.xxlinux.com/linux/article/development/soft/20061016/5033_2.html">2</A></DIV></TD>
          <TD></TD></TR></TBODY></TABLE>
      <TABLE cellSpacing=0 cellPadding=0 width=548 border=0>
        <TBODY>
        <TR>
          <TD align=left></TD></TR>
        <TR>
          <TD align=middle height=12></TD></TR></TBODY></TABLE>
      <TABLE cellSpacing=0 cellPadding=0 width=548 border=0>
        <TBODY>
        <TR>
          <TD align=right>【<A 
            href="http://www.xxlinux.com/linux/e/pl?classid=13&amp;id=5033">评论</A>】【<A 
            href="http://www.xxlinux.com/linux/e/member/fava/add?classid=13&amp;id=5033">加入收藏夹</A>】【<A 
            href="javascript:doZoom(16)">大</A> <A 
            href="javascript:doZoom(14)">中</A> <A 
            href="javascript:doZoom(12)">小</A>】【<A 
            href="http://www.xxlinux.com/linux/e/DoPrint?classid=13&amp;id=5033" 
            target=_blank>打印</A>】【<A 
        href="javascript:window.close()">关闭</A>】</TD></TR></TBODY></TABLE>
      <TABLE cellSpacing=0 cellPadding=0 width=548 border=0>
        <TBODY>
        <TR>
          <TD>
            <SCRIPT type=text/javascript><!--
google_ad_client = "pub-3701573918329010";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as_rimg";
google_cpa_choice = "CAAQ_ZOgnAIaCLtUj9RC7Q0mKJnA93M";
google_ad_channel = "";
//--></SCRIPT>

            <SCRIPT src="如何编写Linux下的客户机-服务器软件-xxlinux_com.files/show_ads.js" 
            type=text/javascript>
</SCRIPT>
          </TD></TR></TBODY></TABLE>
      <TABLE cellSpacing=1 cellPadding=0 width="99%" align=center 
      bgColor=#ededef border=0>
        <TBODY>
        <TR>
          <TD height=25>※ 相关链接</TD></TR>
        <TR>
          <TD bgColor=#ffffff 
height=35>无相关信息</TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
<TABLE class=copyright_table cellSpacing=0 cellPadding=0 width=778 align=center 
background=如何编写Linux下的客户机-服务器软件-xxlinux_com.files/copyright.gif border=0>
  <TBODY>
  <TR>
    <TD align=middle width=150 rowSpan=5></TD>
    <TD width=543 colSpan=2 height=2></TD></TR>
  <TR>
    <TD class=copyright_td align=middle width=543></TD>
    <TD class=copyright_td align=middle width=150 rowSpan=3></TD></TR>
  <TR>
    <TD class=copyright_td width=543>
      <DIV align=center>&copy; CopyRight 2006-2009 xxlinux.com.Inc All Rights 
      Reserved</DIV></TD></TR>
  <TR>
    <TD class=copyright_td align=middle width=543>
      <DIV align=center>Powered by xxlinux.com</DIV></TD>
    <TD><A href="http://www.freesitemapgenerator.com/"><IMG 
      style="BORDER-RIGHT: 0px; PADDING-RIGHT: 0px; BORDER-TOP: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 3px; BORDER-LEFT: 0px; PADDING-TOP: 0px; BORDER-BOTTOM: 0px" 
      alt="Free Sitemap Generator" 
      src="如何编写Linux下的客户机-服务器软件-xxlinux_com.files/fsgbig1.gif" border=0></A>
      <SCRIPT language=javascript>
/* FSG 0.96 script */ 
var fsg_Live_date_package_version='0.96';
var fsg_image = 'big';
var fsg_serial = 'ef26847978f6b45b3eeace2c7fb1334f';
</SCRIPT>

      <SCRIPT language=javascript 
      src="如何编写Linux下的客户机-服务器软件-xxlinux_com.files/fsg096.js"></SCRIPT>
       </TD></TR>
  <TR>
    <TD width=543 colSpan=2 height=0></TD></TR></TBODY></TABLE>
<TABLE 
style="BORDER-TOP-WIDTH: 1px; BORDER-RIGHT: #c0c0c0 1px solid; BORDER-BOTTOM-WIDTH: 1px; BORDER-LEFT: #c0c0c0 1px solid" 
cellSpacing=0 cellPadding=0 width=778 align=center bgColor=#ffffff border=0>
  <TBODY>
  <TR>
    <TD bgColor=#dbe2e8 height=2></TD></TR>
  <TR>
    <TD bgColor=#c5cfd9 height=1></TD></TR>
  <TR>
    <TD bgColor=#ffffff height=1></TD></TR></TBODY></TABLE>
<SCRIPT type=text/javascript><!--
var adlogger_loc = "http://www.xxlinux.com/adlogger";
var channel_id = "";
//--></SCRIPT>

<SCRIPT src="" type=text/javascript>
</SCRIPT>

<SCRIPT src="如何编写Linux下的客户机-服务器软件-xxlinux_com.files/urchin.js" 
type=text/javascript>
</SCRIPT>

<SCRIPT type=text/javascript>
_uacct = "UA-244517-1";
urchinTracker();
</SCRIPT>

<SCRIPT src="如何编写Linux下的客户机-服务器软件-xxlinux_com.files/onclick.htm"></SCRIPT>
<!--Published Date:2007-11-19 17:39:18   Powered by www.phome.net,Products:Empire CMS--></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -