当前位置:  技术问答>linux和unix

菜鸟问以下关于网络编程的问题

    来源: 互联网  发布时间:2016-09-07

    本文导语:  int main ( int argc, char *argv[] ) { struct sockaddr_in saddr; struct hostent *hp; char hostname[HOSTLEN]; int sock_id, sock_fd; FILE *sock_fp; char *ctime(); time_t thetime; sock_id = socket(AF_INET, SOCK_STREAM, 0); if (sock_id == -1) { oops("socket error!...


int main ( int argc, char *argv[] )
{
struct sockaddr_in saddr;
struct hostent *hp;
char hostname[HOSTLEN];
int sock_id, sock_fd;
FILE *sock_fp;
char *ctime();
time_t thetime;

sock_id = socket(AF_INET, SOCK_STREAM, 0);
if (sock_id == -1)
{
oops("socket error!");
}

memset(&saddr, 0, sizeof(struct sockaddr_in));
gethostname(hostname, HOSTLEN);
hp = gethostbyname(hostname);

bcopy((void*)hp->h_addr, (void*)&saddr.sin_addr, hp->h_length);
saddr.sin_port = htons(PORTNUM);
saddr.sin_family = AF_INET;

if (bind(sock_id, (struct sockaddr*)&saddr, sizeof(saddr)) != 0)
{
oops("bind");
}

if (listen(sock_id, 1) != 0)
{
oops("listen");
}
while (1)
{
sock_fd = accept(sock_id, NULL, NULL);
printf("Wow! got a calln");
if (sock_fd == -1)
{
oops("accept");
}

sock_fp = fdopen(sock_fd, "w");
if (sock_fp == NULL)
{
oops("fdopen");
}

thetime = time(NULL);

fprintf(sock_fp, "the time here is..");
fprintf(sock_fp, "%s", ctime(&thetime));
fclose(sock_fp);
}
return EXIT_SUCCESS;
} /* ----------  end of function main  ---------- */

我按书上编了一个能返回时间的服务器程序,
然后我在另一台电脑上(两台电脑由路由器链接,服务器已经在我电脑上运行)
我运行这个命令
telent zch-laptop 13000(zch-laptop为我电脑的名字,13000是端口号)
为什么没反应阿?按照书上说应该返回时间?

还有,我看是在不行,又编了一个客户端,在另一台机器上运行,仍然不行(程序肯定正确)。
是我还有什么地方没弄明白吧,还请大侠指点阿

|

#include
#include
#include
#include
#include
#include
#include
#include
#define HOSTLEN 124
#define PORTNUM 13000
int main ( int argc, char *argv[] )
{
    struct sockaddr_in saddr;
    struct hostent *hp;
    char hostname[HOSTLEN];
    int sock_id, sock_fd;
    FILE *sock_fp;
    char *ctime();
    time_t thetime;

    sock_id = socket(AF_INET, SOCK_STREAM, 0);
    if (sock_id == -1)
    {
        printf("socket error!");
    }

    memset(&saddr, 0, sizeof(struct sockaddr_in));
    gethostname(hostname, HOSTLEN);
    hp = gethostbyname(hostname);

    bcopy((void*)hp->h_addr, (void*)&saddr.sin_addr, hp->h_length);
    saddr.sin_port = htons(PORTNUM);
    saddr.sin_family = AF_INET;

    if (bind(sock_id, (struct sockaddr*)&saddr, sizeof(saddr)) != 0)
    {
        printf("bind");
    }

    if (listen(sock_id, 1) != 0)
    {
        printf("listen");
    }
    while (1)
    {
        sock_fd = accept(sock_id, NULL, NULL);
        printf("Wow! got a calln");
        if (sock_fd == -1)
        {
            printf("accept");
        }

        sock_fp = fdopen(sock_fd, "w");
        if (sock_fp == NULL)
        {
            printf("fdopen");
        }

        thetime = time(NULL);

        fprintf(sock_fp, "the time here is..");
        fprintf(sock_fp, "%s", ctime(&thetime));
        fclose(sock_fp);
    }
    return EXIT_SUCCESS;
}

这是你的代码可以运行的
正常运行 你用telent ip  13000的方式试试
[root@ns ~]# telnet localhost 13000
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Wow! got a call
the time here is..Wed Jun 30 17:09:19 2010
Connection closed by foreign host.

    
 
 

您可能感兴趣的文章:

  • 菜鸟请教linux下的网络编程
  • 菜鸟问题:请问要在Linux操作系统下完成TCP/IP网络编程,用什么编程工具好?
  • 菜鸟问题 请问 liunx下网络编程是否有类似win下面的I/O模型可用?
  • 一个网络编程中send函数的菜鸟问题
  • 菜鸟Unix网络编程问题,僵尸进程
  • linux网络编程的菜鸟问题
  • Linix编程 有界面的编程与数据库 菜鸟提问
  • [菜鸟提问]关于linux下的java编程
  • 菜鸟问题,Java图形编程里,怎么设置一个panel的大小?
  • 菜鸟求教!--linux编程初学者
  • 菜鸟怎样才能培养编程思想
  • 菜鸟问题:现在要做unix下的c/c+编程的几个问题?
  • 问个C编程的菜鸟问题
  • 在linux下用c++编程的一个菜鸟问题
  • 菜鸟问题,在jbuilder中的编程小问题
  • 菜鸟问题: 请问如何创建一个文件来进行编程
  • 菜鸟请教linux下编程怎么用--------在线等待
  • 菜鸟问个多线程编程的问题,请各位大大赐教!
  • unix c编程 菜鸟问题求助!
  • 菜鸟请教下shell编程中if条件中比较的一个问题
  • 《 UNIX环境高级编程》菜鸟问题!!
  • 菜鸟问题,小弟刚刚使用LINUX不久,不知道如何使用编程工具进行编译和运行!
  • 菜鸟请教linux下C编程问题
  • 菜鸟问题:我刚学servlet+数据库编程,请大家帮帮我!
  • 问个C编程的菜鸟问题——字符串输入
  • 请大家谈谈编程思想和心得!!(给菜鸟一点建议!)
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • ----菜菜鸟第三问:-菜鸟菜问:JAVA如何求 根号、开次方? -----
  • 菜鸟问一个关于j2ee的菜鸟问题
  • 怎样从一个菜鸟级的java programer升级到一个菜鸟级的java developer
  • 一个连菜鸟都算不上的菜鸟
  • 菜鸟求问菜鸟问题 ,域名绑定
  • ===菜鸟系列===:写过毕业论文的前辈请进!!!菜鸟散分啦!!!!
  • gcc问题---菜鸟发问之一,老大们帮忙啊!!菜鸟分不多,只好给这点了,对不起!!
  • 菜鸟又来问菜鸟问题了
  • 菜鸟的Linux练习疑问……
  • 菜鸟刚学jsp,还不知道怎么和sql server2000的数据库相连,我已经把odbc配好了,谁能给我一段和数据库相连的并显示所有数据的代码!菜鸟
  • 菜鸟提问,我怎么装redhat7。1
  • 菜鸟写的俄罗斯方块,请多多批评!
  • 小问题,你一定能够帮忙!——菜鸟请求帮忙!!
  • 一个菜鸟的请求: 哪位前辈能给晚辈讲讲“匿名类”
  • ※菜鸟送分之一※ Red Hat Linux 的最高版本是多少?
  • 菜鸟问题:在Java中如何接收从键盘输入的字符串?
  • ★菜鸟问:怎么在RED HAT LINUX7.2中用169上网??
  • 菜鸟提问:包是什么概念?
  • 菜鸟问题~~快点进来拿分
  • 菜鸟菜问题1


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3