亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 8757 | 回復(fù): 10
打印 上一主題 下一主題

bind error [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2011-08-03 17:32 |只看該作者 |倒序瀏覽
最近學(xué)習(xí)unix網(wǎng)絡(luò)編程,按照書上的例子寫程序,編譯通過后bind返回值總是小于0,請問這個是怎么回事啊?謝謝
  1. #include        <stdio.h>
  2. #include        <stdlib.h>
  3. #include        <netinet/ip.h>
  4. #include        <time.h>
  5. #include        <sys/socket.h>                /* for listen() */
  6. #include        <string.h>                        /* for bzero() */

  7. #define        MAXLINE        4096
  8. #define        LISTENQ        1024
  9. int
  10. main(int argc, char **argv)
  11. {
  12.         int         listenfd, connfd;
  13.         struct        sockaddr_in servaddr;
  14.         char        buff[MAXLINE];
  15.         time_t        ticks;

  16.         if ((listenfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
  17.                 printf("socket error");
  18.                 exit(1);
  19.         }

  20.         bzero(&servaddr, sizeof(servaddr));
  21.         servaddr.sin_family        = AF_INET;
  22.         servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
  23.         servaddr.sin_port = htons(13);

  24.         if ( bind(listenfd, (struct sockaddr *) &servaddr, sizeof(servaddr)) < 0) {
  25.                 printf("bind error");
  26.                 exit(1);
  27.         }

  28.         if ( listen(listenfd, LISTENQ) < 0) {
  29.                 printf("Listen error");
  30.                 exit(1);
  31.         }

  32.         for ( ; ; ) {
  33.                 if ( connfd = (accept(listenfd, (struct sockaddr *) NULL, NULL)) < 0) {
  34.                         printf("accept error");
  35.                         exit(1);
  36.                 }

  37.                 ticks = time(NULL);
  38.                 snprintf(buff, sizeof(buff), "%.24s\r\n", ctime(&ticks));
  39.                 if ( write(connfd, buff, strlen(buff)) < 0) {
  40.                         printf("write error");
  41.                         exit(1);
  42.                 }
  43.                 if ( close(connfd) < 0) {
  44.                         printf("close error");
  45.                         exit(1);
  46.                 }
  47.                
  48.         }

  49.         exit(0);
  50. }
復(fù)制代碼

論壇徽章:
1
天蝎座
日期:2013-12-06 18:23:58
2 [報告]
發(fā)表于 2011-08-03 23:02 |只看該作者
這個端口你能用嗎?

論壇徽章:
1
技術(shù)圖書徽章
日期:2013-10-29 15:46:41
3 [報告]
發(fā)表于 2011-08-04 10:23 |只看該作者
13?

論壇徽章:
0
4 [報告]
發(fā)表于 2011-08-04 12:46 |只看該作者
我用netstat看了一下,13號端口沒被占用啊。

附:
Daytime協(xié)議
  有一個有用的調(diào)試工具就是daytime服務(wù)。它的作用就是返回當(dāng)前時間和日期,格式是字符串格式。
  基于TCP的daytime服務(wù)
  daytime服務(wù)是基于TCP的應(yīng)用,服務(wù)器在TCP端口13偵聽,一旦有連接建立就返回ASCII形式的日期和時間,在傳送完后關(guān)閉連接。接收到的數(shù)據(jù)被忽略。
  基于UDP的daytime服務(wù)
  daytime服務(wù)也可以使用UDP協(xié)議,它的端口也是13,不過UDP是用數(shù)據(jù)報傳送當(dāng)前時間的。接收到的數(shù)據(jù)被忽略。

論壇徽章:
0
5 [報告]
發(fā)表于 2011-08-04 12:47 |只看該作者
明白了,是權(quán)限不夠造成的,加上 sudo 運行就可以了,謝謝樓上各位

論壇徽章:
0
6 [報告]
發(fā)表于 2011-08-05 00:18 |只看該作者
你竟然敢用 13 作為端口 牛屄。

論壇徽章:
0
7 [報告]
發(fā)表于 2011-08-05 10:08 |只看該作者
1024以下的端口是well known的,不能隨便用
http://www.iana.org/assignments/port-numbers

論壇徽章:
0
8 [報告]
發(fā)表于 2014-03-11 12:26 |只看該作者
為什么不用error()或perror()等等出錯處理函數(shù),而是用printf()函數(shù)呢?這樣出了錯也不知道錯在哪里

論壇徽章:
0
9 [報告]
發(fā)表于 2014-03-11 12:33 |只看該作者
另外0到1023號這些熟知端口(well-known)是你能隨便用的嗎?當(dāng)然,注冊端口(1024-49151)最好也別用,要用就用動態(tài)端口(49152-65535)作為臨時端口

論壇徽章:
0
10 [報告]
發(fā)表于 2014-03-17 20:14 |只看該作者
檢查返回值,查看對應(yīng)錯誤代碼。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP