<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ## connect ## 建立socket連線 ### 相關函數 ### socket,bind,listen ### 表頭文件 ### ``` #include<sys/types.h> #include<sys/socket.h> ``` ### 定義函數 ### ``` int connect(int sockfd, struct sockaddr *serv_addr, int addrlen); ``` ### 函數說明 ### connect()用來將參數sockfd 的socket 連至參數serv_addr 指定的網絡地址。結構sockaddr請參考bind()。參數addrlen為sockaddr的結構長度。 ### 返回值 ### 成功則返回0,失敗返回-1,錯誤原因存于errno中。 ### 錯誤代碼 ### EBADF 參數sockfd 非合法socket處理代碼 EFAULT 參數serv_addr指針指向無法存取的內存空間 ENOTSOCK 參數sockfd為一文件描述詞,非socket。 EISCONN 參數sockfd的socket已是連線狀態 ECONNREFUSED 連線要求被server端拒絕。 ETIMEDOUT 企圖連線的操作超過限定時間仍未有響應。 ENETUNREACH 無法傳送數據包至指定的主機。 EAFNOSUPPORT sockaddr結構的sa_family不正確。 EALREADY socket為不可阻斷且先前的連線操作還未完成。 ### 范例 ### ``` /* 利用socket的TCP client 此程序會連線TCP server,并將鍵盤輸入的字符串傳送給server。 TCP server范例請參考listen()。 */ #include<sys/stat.h> #include<fcntl.h> #include<unistd.h> #include<sys/types.h> #include<sys/socket.h> #include<netinet/in.h> #include<arpa/inet.h> #define PORT 1234 #define SERVER_IP “127.0.0.1” main() { int s; struct sockaddr_in addr; char buffer[256]; if((s = socket(AF_INET,SOCK_STREAM,0))<0){ perror(“socket”); exit(1); } /* 填寫sockaddr_in結構*/ bzero(&addr,sizeof(addr)); addr.sin_family = AF_INET; addr.sin_port=htons(PORT); addr.sin_addr.s_addr = inet_addr(SERVER_IP); /* 嘗試連線*/ if(connect(s,&addr,sizeof(addr))<0){ perror(“connect”); exit(1); } /* 接收由server端傳來的信息*/ recv(s,buffer,sizeof(buffer),0); printf(“%s\n”,buffer); while(1){ bzero(buffer,sizeof(buffer)); /* 從標準輸入設備取得字符串*/ read(STDIN_FILENO,buffer,sizeof(buffer)); /* 將字符串傳給server端*/ if(send(s,buffer,sizeof(buffer),0)<0){ perror(“send”); exit(1); } } } ``` ### 執行 ### ``` $ ./connect Welcome to server! hi I am client! /*鍵盤輸入*/ /*<Ctrl+C>中斷程序*/ ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看