`
memorymyann
  • 浏览: 271852 次
  • 性别: 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

    1. 使用TCP协议编写客户端和服务器程序。在这个阶段,服务器先启动,创建套接字并等待客户端的连接请求。客户端创建套接字并与服务器建立连接后,可以通过键盘输入数据,然后发送给服务器。服务器接收到数据后将其...

    第3讲-TCP客户端-服务器程序示例(FTP服务器和客户机)借鉴.pdf

    本讲将详细阐述如何构建一个基于TCP的客户端-服务器程序,特别以FTP(文件传输协议)服务器和客户机为例,揭示其设计思路和实现细节。 1. **概述** FTP服务器和客户机是客户端-服务器模型的经典应用。在FTP中,...

    网络TCP传输的服务器的程序源码 能结合客户机程序源码完成网络传输 源代码完整

    本项目提供的"网络TCP传输的服务器的程序源码"是一个完整的实现,能够与"客户机程序源码"配合,完成两端之间的数据交换。服务器端的源码通常包括以下几个关键部分: 1. **监听(Listening)**: 服务器需要启动一个...

    易语言客户连接服务器例程

    本例程的主题是“易语言客户连接服务器例程”,主要关注的是客户端如何与服务器进行通信的基础知识。 在计算机网络中,客户端-服务器模型是最常见的通信模式之一。在这个模型中,客户端发起请求,而服务器则负责...

    Node.js-atmo-服务器端API模拟

    标题 "Node.js-atmo-服务器端API模拟" 指的是一个使用Node.js构建的工具,专门用于在服务器端模拟API。这个工具名为"Atmo",可能是开发者Raathigesh创建的一个开源项目,版本号为3236ae7。在开发过程中,模拟API对于...

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

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

    c# TCP服务器通讯支持多客户

    这可以通过发送心跳包或空消息实现,如果一段时间内没有收到客户端的响应,则认为客户端已断开连接。 - 当检测到客户端断开连接时,应关闭相应的网络流,然后停止处理该客户端的线程。在C#中,可以使用`Thread....

    A简易代理服务器的设计.doc

    在简易代理服务器的设计中,采用了经典的客户机/服务器(Client/Server,C/S)架构。在这种模型中,客户端是发起请求的一方,而服务器则是接收并处理请求的一方。在代理服务器的场景下,代理服务器作为服务器端,...

    TCP和UDP套接字_简单的客户/服务器

    本主题聚焦于如何利用这两种协议设计一个简单的客户/服务器系统,并涉及到多线程编程技术。下面将详细阐述相关知识点。 首先,TCP是一种面向连接的、可靠的协议,它确保数据的正确顺序传输和错误检测。TCP通过建立...

    基于TCP的服务器客户端程序的设计说明.docx

    1. **编程实现面向连接的客户/服务器程序** - **客户端**: 负责初始化连接请求到服务器,发送数据,并接收服务器的响应。 - **服务器端**: 接收来自客户端的连接请求,处理客户端发送的数据,并向客户端返回响应。...

    TCP客户服务器的初步应用

    理解这些概念并能实际编写客户端和服务器程序,对于开发网络应用程序至关重要。通过这种方式,你可以实现各种网络功能,如文件传输、聊天应用、在线游戏等。在实际项目中,还需要考虑安全性、性能优化等更高级的话题...

    Mysql 教程 - MySql 工具.pdf

    对于命令行客户端软件,想熟悉使用,必需对每一个相关命令需要非常熟悉,这对于现在初级 MySQL 用户来说,还得玩儿上好长一段时间。 MySQL 服务器端使用工具程序: 1. mysqld - SQL 后台程序(即 MySQL 服务器进程...

    vc tcp socket 1台服务器连3台客户机_下线及时通知(即心跳保持也叫心跳检测技术)

    在TCP连接中,如果一段时间内没有数据交换,连接可能会因为网络问题或服务器故障而中断,但双方可能不会立即察觉。心跳检测通过周期性地发送小量数据(如特定的报文或空包)来验证连接的完整性。如果服务器或客户端...

    易语言源码易语言服务器客户数据包拦截源码.rar

    本压缩包“易语言源码易语言服务器客户数据包拦截源码.rar”包含的是使用易语言编写的一段代码,用于实现服务器对客户端数据包的拦截功能。在IT领域,数据包拦截是一种常见的网络分析技术,常用于网络安全、性能监控...

    p2p理财微信小程序:客户端子系统(小程序)+管理子系统(php+mvc).zip

    1. 小程序开发框架:项目采用了uni-app作为开发框架,它是一个多端开发框架,可以一次编写,多端运行,支持微信、支付宝、百度等多平台小程序,大大提高了开发效率。 2. UI设计:小程序的界面设计遵循微信的设计规范...

    1服务器安装方案.docx

    【服务器安装方案】通常指的是在IT环境中为提供特定服务而设定的一系列步骤和技术要求,它涉及到硬件安装、操作系统配置、网络设置、安全措施以及服务优化等多个方面。在本文件中,虽然主要内容似乎与IT服务器安装...

    通过OpenIddict设计一个授权服务器03-客户凭证流程

    在本教程中,我们将深入探讨如何使用OpenIddict库为C#应用程序设计一个授权服务器,特别是关注"客户凭证流程"。OpenIddict是一个轻量级、开箱即用的授权服务器框架,用于构建符合OAuth2和OpenID Connect标准的安全...

Global site tag (gtag.js) - Google Analytics