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

tcp socket

阅读更多
socket就是个通道
真正用的还是fd

cat tcpserver.c

#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
int main(argc,argv){
   int s,fd,len;
   struct sockaddr_in my_addr;
   struct sockaddr_in remote_addr;
   int sin_size;
   char buf[BUFSIZ];
   memset(&my_addr,0,sizeof(my_addr));
   my_addr.sin_family=AF_INET;
   my_addr.sin_addr.s_addr=INADDR_ANY;
   my_addr.sin_port=htons(87654);
   if((s=socket(AF_INET,SOCK_STREAM,0))<0)
   {
    perror("socket");
    return 1;
   }
   if(bind(s,(struct sockaddr * )&my_addr,sizeof(struct sockaddr))<0)
   {
    perror("bind");
    return 1;
   }
   listen(s,5);
   sin_size=sizeof(struct sockaddr_in);
   if((fd=accept(s,(struct sockaddr *)&remote_addr,&sin_size))<0)
   {
    perror("accept");
    return 1;
   }
   printf("accepted client %s\n",inet_ntoa(remote_addr.sin_addr));
   len=send(fd,"welcome haha to myserver\n",25,0);
   while((len=recv(fd,buf,BUFSIZ,0))>0)
   {
    buf[len]='\0';
    printf("%s\n",buf);
    if(send(fd,buf,len,0)<0)
    {
        perror("write ");
        return 1;
    }
   }
   close(fd);
   close(s);
   return 0;
}


./a.out &
telnet localhost 87654


tcpclient.c
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>

int main(argc,argv){
        int s,len;
        struct sockaddr_in remote_addr;
        char buf[BUFSIZ];
        memset(&remote_addr,0,sizeof(remote_addr));
        remote_addr.sin_family=AF_INET;
        remote_addr.sin_addr.s_addr=inet_addr("127.0.0.1");
        remote_addr.sin_port=htons(8000);
        if((s=socket(AF_INET,SOCK_STREAM,0))<0)
        {
                perror("socket");
                return 1;
        }
        if(connect(s,(struct sockaddr *)&remote_addr,sizeof(struct sockaddr))<0)
        {
                perror("connect");
                return 1;
        }
        printf("connect to server\n");
        len=recv(s,buf,BUFSIZ,0);
        buf[len]='\0';
        printf("%s",buf);
        while(1){
                printf("enter string to end:");
                scanf("%a",buf);
                if(!strcmp(buf,"quit"))
                        break;
                len=send(s,buf,strlen(buf),0);
                len=recv(s,buf,strlen(buf),0);
                buf[len]='\0';
                printf(" received:%s\n",buf);
        }
        close(s);
        return 0;
}

客户端不用fd



没看一次理解都不一样
  • 大小: 126.9 KB
  • 大小: 147 KB
分享到:
评论

相关推荐

    好用的Tcp Socket调试工具

    在IT行业中,网络编程是不可或缺的一部分,而TCP Socket通信作为网络通信的基础,其调试工作尤为重要。标题提到的“好用的Tcp Socket调试工具”显然是一款能够帮助开发者解决TCP Socket通信问题的有效辅助软件。描述...

    Android TCP Socket通信实例Demo源码Apk下载

    最近有个项目模块需要用到TCP Socket通讯,遇到了一个大坑,所以做了这个Demo。 本Demo主要实现了安卓(Android)TCP 客户端(Client)和服务器(Server)Demo的Socket通讯。以及对接硬件的项目数据在十六进制&&byte&&int...

    TCP socket服务端代码 C#

    本文将详细解析使用C#语言编写的TCP socket服务端代码,特别是针对GPRS(General Packet Radio Service)环境的服务端测试程序。 首先,TCP是一种面向连接的、可靠的传输协议,它确保了数据的顺序传输和无丢失特性...

    SocketTcp_TcpSocket服务端框架_

    SocketTcp_TcpSocket服务端框架是一个专为开发者设计的简单且通用性强的TCP服务器实现。这个框架旨在简化网络编程过程,让开发者能够快速构建自己的TCP服务应用,只需要对原有代码进行少量修改,即可轻松地将其集成...

    TCP socket 请求报文发送工具

    TCP套接字(TCP Socket)是网络通信中的一个重要概念,它是基于传输控制协议TCP的应用程序接口,用于在互联网上实现两台计算机之间的可靠数据传输。TCP确保数据在传输过程中的完整性,通过提供连接导向、面向字节流...

    Tcp Socket client实例

    在IT行业中,TCP Socket通信是网络编程的基础,广泛应用于各种客户端-服务器应用程序。"Tcp Socket client 实例"指的是一个使用TCP协议的客户端示例程序,它通过Socket接口与服务器进行数据交互。事件驱动是一种编程...

    TCPSOCKET 线程池通信客户端+服务器端示例代码

    总结起来,"TCPSOCKET线程池通信客户端+服务器端示例代码"是.NET开发者学习如何利用TCP SOCKET进行高效、多线程通信的宝贵资源。通过理解和实践这个示例,开发者可以更好地掌握网络编程技术,为开发高性能的网络应用...

    Qt5-TCPsocket文件传送接收

    Qt5作为一个强大的跨平台应用程序开发框架,提供了丰富的功能来处理网络编程,其中包括TCP套接字(TCPsocket)的使用。本篇将详细介绍如何利用Qt5的TCPsocket实现文件的发送与接收。 首先,TCP(Transmission ...

    c# tcpsocket 原生代码编写 客户端和服务端程序

    在IT行业中,网络通信是不可或缺的一部分,而TCP(Transmission Control Protocol)和Socket是实现网络通信的基础。本教程将深入探讨如何使用C#语言编写原生的TCP Socket客户端和服务端程序。TCP是一种面向连接的、...

    基于QT5编写的TCP SOCKET通信小demo程序,通讯数据用QJSON封装。

    在这个特定的项目中,开发者利用QT5创建了一个简单的TCP SOCKET通信示例,用于演示如何在客户端和服务器之间交换数据。TCP(传输控制协议)是一种面向连接的、可靠的网络通信协议,它确保了数据包的顺序传输和错误...

    C# TCP Socket 通讯 实例

    在IT行业中,网络通信是至关重要的一个领域,TCP(传输控制协议)和Socket编程是其中的基础。本实例将深入探讨如何使用C#语言实现TCP Socket通信。C#是一门广泛应用于Windows平台的面向对象的编程语言,其强大的.NET...

    Tcp Socket源码C#使用十分方便简单

    本文将深入探讨C#环境下如何利用Tcp Socket进行简单高效的通信,结合提供的"SimpleSocket-master"源码,我们将揭示其方便易用的特点。 首先,TCP是一种面向连接的、可靠的传输协议,它确保数据的顺序传输和无丢失性...

    查看本机tcp socket当前连接数(并发量).zip

    查看本机tcp socket当前连接数(并发量).zip

    基于TCPsocket的文件传输程序

    本文将深入探讨基于TCPsocket的文件传输程序,重点解析标题和描述中的关键知识点,并以此为基础,分析提供的两个Python脚本:TCP_server_v2_0.py和client_v1_2.py。 首先,TCP是一种面向连接的、可靠的传输协议,它...

    WIN32 TCPsocket

    标题中的"WIN32 TCPsocket"指的是在Windows 32位平台上使用TCP协议进行网络通信的编程技术。TCP(Transmission Control Protocol)是一种面向连接、可靠的传输协议,它保证了数据包在互联网上的有序和无损传输。在...

    tcpsocket.zip_TcpSocket_vc tcpsocket

    本文将深入探讨如何在Visual C++(简称VC++)环境下,利用TCP套接字进行网络编程,同时分享一个名为“TcpSocket_vc”的经典类库,它在实际项目中表现出色,值得学习和使用。 TCP是一种面向连接的、可靠的传输协议,...

    TCP socketDemo

    TCP套接字(TCP Socket)是网络通信中的一个重要概念,它是基于传输控制协议TCP的应用程序编程接口API,用于实现两台计算机之间的可靠、面向连接的数据通信。在这个"TCP socketDemo"中,我们很可能会看到一个简单的...

    TCP socket编程

    本教程旨在帮助初学者理解TCP Socket编程的基本概念,并通过简单的实例演示如何实现客户端与服务器端的交互。 TCP(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。它确保...

    C# TCP Socket 分包传送数据

    在C#编程中,利用.NET框架提供的Socket类,我们可以方便地实现TCP通信。然而,在某些场景下,如传输大块数据时,可能会遇到分包传送的问题。本篇将深入探讨C#中如何处理TCP Socket的分包传送数据。 首先,TCP协议...

Global site tag (gtag.js) - Google Analytics