`
haoningabc
  • 浏览: 1476628 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于socket写了无数遍了

阅读更多
#include    <stdio.h>
#include    <sys/socket.h>
#include    <netinet/in.h>
#define MAXLINE     4096
#define bzero(ptr,n)        memset(ptr, 0, n)
#define SA  struct sockaddr
int
main(int argc, char **argv)
{
    int                 sockfd, n;
    char                recvline[MAXLINE + 1];
    struct sockaddr_in  servaddr;

    if (argc != 2)
        printf("usage: a.out <IPaddress>");

    if ( (sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
        printf("socket error");

    bzero(&servaddr, sizeof(servaddr));
    servaddr.sin_family = AF_INET;
    servaddr.sin_port   = htons(13);    /* daytime server */
    if (inet_pton(AF_INET, argv[1], &servaddr.sin_addr) <= 0)
        printf("inet_pton error for %s", argv[1]);

    if (connect(sockfd, (SA *) &servaddr, sizeof(servaddr)) < 0)
        printf("connect error");

    while ( (n = read(sockfd, recvline, MAXLINE)) > 0) {
        recvline[n] = 0;    /* null terminate */
        if (fputs(recvline, stdout) == EOF)
            printf("fputs error");
    }
    if (n < 0)
        printf("read error");

    exit(0);
}


unpv上的源码为
#include    "unp.h"

int
main(int argc, char **argv)
{
    int                 sockfd, n;
    char                recvline[MAXLINE + 1];
    struct sockaddr_in  servaddr;

    if (argc != 2)
        err_quit("usage: a.out <IPaddress>");

    if ( (sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
        err_sys("socket error");

    bzero(&servaddr, sizeof(servaddr));
    servaddr.sin_family = AF_INET;
    servaddr.sin_port   = htons(13);    /* daytime server */
    if (inet_pton(AF_INET, argv[1], &servaddr.sin_addr) <= 0)
        err_quit("inet_pton error for %s", argv[1]);

    if (connect(sockfd, (SA *) &servaddr, sizeof(servaddr)) < 0)
        err_sys("connect error");

    while ( (n = read(sockfd, recvline, MAXLINE)) > 0) {
        recvline[n] = 0;    /* null terminate */
        if (fputs(recvline, stdout) == EOF)
            err_sys("fputs error");
    }
    if (n < 0)
        err_sys("read error");

    exit(0);
}
分享到:
评论

相关推荐

    SuperSocket写Socket客户端(连接,重连,接收处理数据)

    SuperSocket写Socket客户端(连接,重连,接收处理数据)

    处理多个未决的socket 读写操作C++源代码

    1. **CodeProject Handling multiple pending socket read and write operations_ Free source code and programming help.htm**:这个可能是详细解释该问题的HTML文档,提供了关于如何处理多个未决socket I/O操作的...

    用HP-Socket写一个简单好看的网页聊天室

    用HP-Socket写一个简单好看的网页聊天室

    socket_test.zip_socket php_测试socket 读写

    "socket_test.zip_socket php_测试socket 读写"这个压缩包文件显然包含了一个关于如何使用PHP进行Socket通信的测试案例。让我们深入探讨一下这个主题。 首先,Socket是计算机网络中的一个抽象概念,它提供了一种...

    linux下多线程读写socket的简单例子

    4. **选择器/epoll**:在多线程环境中,可以使用select、poll或epoll等I/O多路复用技术来监控多个Socket,当某个Socket有数据可读或可写时,通知相应的线程进行处理。epoll提供更高的性能和可扩展性,尤其适合大并发...

    socketDemo

    Socket编程在IT行业中是网络通信的基础,特别是在C#开发中,`System.Net.Sockets`命名空间提供了Socket类,用于实现客户端和服务器之间的通信。本示例"socketDemo"旨在展示如何创建一个基本的Socket服务器...

    关于socket资料,新手必学

    6. **《经典SQL语句大全》**:虽然不是直接关于Socket编程,但SQL知识对于处理数据库操作,特别是在构建网络应用时存储和检索数据是必不可少的。 7. **《vb_net socket接收数据》**:专门讨论了VB.NET中如何接收...

    java 写socket通讯

    java 写socket通讯 发送信息 接收数据

    关于socket的封装使用

    Socket是网络编程中的一个重要概念,它是基于TCP/IP通信协议实现的一种通信方式,允许两台计算机通过互联网进行双向通信。在Android开发中,我们经常会用到Socket进行客户端与服务器端的数据交换。下面将详细介绍...

    Android安卓使用iosocket进行Socket通信简单封装优雅写代码

    在Android平台上,Socket通信是应用程序之间进行数据交换的重要方式,特别是在需要实时通信或者低延迟的场景下,如游戏、聊天应用等。`io.socket`库是Android开发者常用来实现WebSocket和TCP/IP Socket通信的一个...

    SocketTool socket工具

    SocketTool是一款专为IT专业人士设计的实用工具,主要用于处理网络通信中的套接字(Socket)操作。套接字是计算机网络编程中的一个基本概念,它提供了进程间通信(IPC)和网络通信的能力,使得不同设备上的应用程序...

    HPSocket.Net-develop_hpsocket.net_HPSocket_.net_socket_tcp_

    【标题】"HPSocket.Net-develop_hpsocket.net_HPSocket_.net_socket_tcp_" 提供的知识点主要集中在使用C#编程语言实现基于TCP协议的Socket通信上,并且涉及到一个名为"HPSocket.Net"的库。HPSocket.Net是针对.NET...

    C++纯socket写的FTP服务器

    标题 "C++纯socket写的FTP服务器" 涉及到的是使用C++编程语言构建一个基于原始Socket接口的FTP(文件传输协议)服务器的过程。FTP是互联网上用于在客户端和服务器之间交换文件的标准协议。纯Socket编程意味着不依赖...

    socket池,socket

    Socket池和Socket连接池是网络编程中的重要概念,主要用于提高应用程序的性能和效率。在处理大量并发网络连接时,传统的单个Socket连接方式可能会导致系统资源的过度消耗,因此引入了Socket池技术。 Socket,全称是...

    c#超级Socket库SuperSocket,SOCKET多线程编程

    **SuperSocket库详解** SuperSocket是一款高性能、轻量级的C# Socket服务器开发框架,它为开发者提供了构建基于TCP/IP协议的应用程序的便利工具。在.NET平台上,SuperSocket以其易于扩展和高度定制化的特性,成为了...

    socket详解 socket详解 socket详解 socket详解

    Socket 编程详解 在网络编程中,Socket 是一个基本概念, plays a crucial role in building network applications. 在 C# 中,Socket 编程是通过使用 System.Net.Sockets 命名空间中的类和方法来实现的。下面,...

    SuperSocket Socket C# 通讯详细介绍

    **SuperSocket Socket C# 通讯详解** 在C#编程领域,网络通信是一个不可或缺的部分,而SuperSocket则是一个强大且易用的.NET Socket服务器框架。它为开发者提供了构建自定义网络应用服务的基础,使得处理TCP连接变...

    c语言socket写的模拟p2p应用例子

    以上是对"用C语言socket和多线程写的模拟p2p应用例子"的基本解析,具体的代码实现细节和优化策略将根据实际应用需求而有所不同。这个示例提供了一个学习P2P网络和C语言网络编程的良好起点,读者可以通过阅读和分析...

    socket 1.0(自己写的socket内部实现函数,及其头文件)

    网上的很多代码都是将主函数中如何使用socket,却对socket的内部实现很少提及,本代码解决了这一问题,写明了socket内部函数的实现过程。但是socket它的实现需要加进部分头文件和调用下层的TCP、UDP,所以socket.c在...

    as3socket写的rtmp协议类

    as3socket写的rtmp协议类,完成基本的连接功能,可以获取服务器返回的16进制数据

Global site tag (gtag.js) - Google Analytics