`
memorymyann
  • 浏览: 267597 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

1.一段简单的客户服务器程序

阅读更多

[root@liumengli net]# cat client1.c
#include "/programe/net/head.h"
#include "stdio.h"
#include "stdlib.h"

int main(int argc, char ** argv) {
        int sockfd, n;
        int my;
        char buf[100];
        struct sockaddr_in servaddr;

        if((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
                printf("create socket error\n");
                exit(1);
        }

        bzero(&servaddr, sizeof(servaddr));
        servaddr.sin_family = AF_INET;
        servaddr.sin_port = htons(atoi(argv[2]));

        if(inet_pton(AF_INET, argv[1], &servaddr.sin_addr) < 0) {
                printf("inet_pton error\n");
                exit(1);
        }

        if((my = connect(sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr))) < 0) {
                printf("connect error\n");
                exit(1);
        }

        n = read(sockfd, buf, 100);
        buf[n] = '\0';

        printf("%s\n", buf);
        printf("%d\n", my);
        getchar();
        exit(0);
}
[root@liumengli net]# cat head.h
#include "sys/types.h"
#include "sys/socket.h"
#include "netinet/in.h"
#include "arpa/inet.h"
#include "netdb.h"
[root@liumengli net]# cat server1.c
#include "/programe/net/head.h"
#include "stdio.h"
#include "stdlib.h"

int main(int argc, char ** argu) {
        int listenfd, connfd;
        struct sockaddr_in servaddr;
        char buf[] = "hello world";
        int n;

        listenfd = socket(AF_INET, SOCK_STREAM, 0);
        bzero(&servaddr, sizeof(servaddr));
        servaddr.sin_family = AF_INET;
        servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
        servaddr.sin_port = htons(atoi(argu[1]));
        bind(listenfd, (struct socket_addr *)&servaddr, sizeof(servaddr));
        listen(listenfd, n);
        for(;;) {
                connfd = accept(listenfd, (struct socket_addr *)NULL, NULL);
                write(connfd, buf, strlen(buf));
        }
}

 

unix网络编程最简单的例子,这里不做注释了,后面几篇将围绕这个做详细介绍。

分享到:
评论

相关推荐

    客户验证登陆服务器程序

    程序说明:因为时间仓促本程序功能较为简单,本身只实现了在局域网里面的功能,另外在运行的时候作为服务器的一段必须关掉Windows防火墙! ---------------------------------------------------------------------...

    客户服务器程序设计及实现.doc

    4)题目:简单的客户/服务器程序设计与实现 实验目的及要求: 1、熟悉Microsoft Visual Studio 2008编程环境。 2、了解TCP与UDP协议,以及它们之间的区别。 3、了解客户/服务器模型原理。 4、熟悉Socket编程原理,...

    嵌入式Linux入门笔记(十年程序员精品推荐、让你看得懂的笔记、结合开发板例程精心讲解)

    2.服务器程序 3.测试用客户程序 4.利用I0复用替代多进程的并发服务器…… 5.用无线网络测试上述程序 十.系统时间的实现. 十一。关于进程的体会 1.进程间不共享变量 2.进程通信——信号的使用 3.防止僵死进程。 第四...

    网络管理员试题(八)

    分区,在使用一段时间后,决定在这台机器上安装活动目录服务(Active Directory),但是系统提示要使用 NTFS分区,请在下列选项中选择最合理的解决方案。 A.格式化磁盘,重新安装操作系统,然后在安装程序让用户...

    案例:配置DNS服务器.pptx

    如果没有指定,默认为named.stats在服务器程序的当前目录中 (5) memstatistics-file "/var/named/data/named_mem_stats.txt"; 服务器输出的内存使用统计文件的路径名如果没有指定,默认值为named.memstats。 注意:...

    安装 SUSE Linux Enterprise Server --服务器版

    Administration 中说明了 Xen 客户机的安装,该文档在已安装系统中以及第一张 CD 或 DVD 上提供。 1.2 引导方法 根据所使用的硬件,在安装 SUSE Linux Enterprise Server 之前的第一个引导过 程中,以下引导方法可用...

    你必须知道的495个C语言问题(PDF)

    5.2 怎样在程序里获得一个空指针? . . . . . . . . . . . . . . . . . . . 21 5.3 用缩写的指针比较“if(p)” 检查空指针是否可靠?如果空指针的内 部表达不是0 会怎么样? . . . . . . . . . . . . . . . . . . . ...

    中兴Oracle培训.PDF(高清)

    第1章数据库基础......................................................................................................................................1 1.1 基本概念........................................

    TCP-IP详解卷1.rar

    26.3.1 初始的客户-服务器协议 298 26.3.2 客户中断键 299 26.4 Telnet协议 302 26.4.1 NVT ASCII 302 26.4.2 Telnet命令 302 26.4.3 选项协商 303 26.4.4 子选项协商 304 26.4.5 半双工、一次一字符、一次 一行或...

    建立基于Linux的邮件服务器.doc

    若没 有准备好,发送服务器便会等待,并在一段时间后继续与接收方邮件服务器联 系。这种方式在Internet上称为"存储——转发"方式。POP3和IMAP4可允许E- mail客户向某一SMTP服务器发送电子邮件,另外,也可以接收来自...

    windbg64位程序和中文使用文档附加例子

    1.本地代码好好的,放服务器上运行一段时间后,IIS服务突然占用 w3wp.exe CPU突然100% ,不得不回收应用程序池,如果哪次回收晚了,被客户发现,后果很痛苦~ 2.你的w3wp.exe 内存高居不下 并且逐步上升 3.cpu很低,内存也很...

    操作系统原理 计算机

    CH1 操作系统概论............................................................................................................................1 1.1 操作系统概观.............................................

    chat-server:使用boost.asio的简单聊天服务器示例

    简单的聊天应用程序示例。动机该代码无意在生产环境中使用,并且主要出于个人教育目的而编写。 因此,构建管道和开发环境可能对于当前项目的规模而言是过大的,但是可以用作具有类似目标的大型项目的起始模板。...

    Symbian OS C++高效编程

    11610.1 RThread类 11710.2 线程优先级 11910.3 停止一个运行的线程 12110.4 线程间数据传递 12410.5 异常处理 12610.6 进程 12610.7 小结 128第11章 客户机/服务器框架原理 12911.1 为什么会有...

    软件工程与软件测试自动化教程

    2 客户服务器体系结构的测试 4. 3. 3 实时系统的测试 第5章 软件工程及测试的难点和ISA的相关解决 5. 1 新系统开发支持 5. 1. 1 支持新系统设计 5. 1. 2 减少故障和编码风险 5. 1. 3 帮助软件工程师解决调试...

Global site tag (gtag.js) - Google Analytics