`
cjj_720
  • 浏览: 32968 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

linux下socket示例

阅读更多
/* server.c */
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <sys/wait.h>
#include <unistd.h>
int main(void)
{
  int sockfd,new_fd;
        struct sockaddr_in my_addr;
        struct sockaddr_in their_addr;
        size_t sin_size;
        char buff[1024];
        int numbytes;
        //创建socket
        if((sockfd = socket(AF_INET,SOCK_STREAM,0))==-1)
        {
                perror("socket");
                exit(1);
        }
        
        my_addr.sin_family = AF_INET;
        my_addr.sin_port = htons(2323);
        my_addr.sin_addr.s_addr = INADDR_ANY;
        bzero(&(my_addr.sin_zero),8);
        
        if(bind(sockfd,(struct sockaddr *)&my_addr,sizeof(struct sockaddr))==-1)
        {
                perror("bind");
                exit(1);
        }
        
        if(listen(sockfd,10)==-1)
        {
                perror("listen");
                exit(1);
        }
        
        
        while(1) {
                sin_size = sizeof(struct sockaddr_in);
                perror("server is run");
                
                if((new_fd = accept(sockfd,(struct sockaddr *)&their_addr,&sin_size))==-1)
                {
                        perror("accept");
                        exit(1);
                }
                // 新起一个进程
                if(!fork())
                {
                        
                        if((numbytes = recv(new_fd,buff,1024,0))==-1)
                        {
                                perror("recv");
                                exit(1);
                        }
                        printf("%s",buff);
                        
                        if(send(new_fd,buff,numbytes,0)==-1)
                                perror("send");
                        close(new_fd);
                        exit(0);
                }
                close(new_fd);
        }
        close(sockfd);
}

分享到:
评论

相关推荐

    LinuxSocket示例代码

    本示例代码提供了客户端(client)和服务器端(server)的实现,帮助初学者深入理解如何在Linux环境下使用Sockets进行网络通信。 首先,让我们了解一下Linux Socket的基本概念。Socket是一种进程间通信机制,它允许...

    Linux下的Socket编程实例(阻塞和非阻塞)

    Linux下的Socket编程实例(阻塞和非阻塞) 通过分析给定的文件信息,我们可以生成以下知识点: Socket编程概述 Socket 编程是指使用操作系统提供的 socket 编程接口来实现网络通信的编程方式。Socket 编程可以实现...

    socket_test.zip_Linux下的socket_linux socket_linux socket server_l

    本教程将深入探讨Linux下的socket编程,包括服务器和客户端的实现。我们主要关注以下几个知识点: 1. **Socket基本概念**: Socket是网络通信的基础,它是两台机器之间建立连接的接口。在Linux中,它是一个文件...

    Linux下Socket连接超时的一种实现方法

    Linux 下 Socket 连接超时的一种实现方法 在 Linux 环境下,设置套接字(Socket)连接超时是一件非常重要的事情。下面我们将详细介绍 Linux 下 Socket 连接超时的一种实现方法。 首先,需要创建套接字,并将其设置...

    Linux下Socket编程

    在IT领域,Linux下的Socket编程是一项基础且重要的技能,它涉及到网络通信的核心技术。这篇博客“Linux下Socket编程”很可能会深入探讨如何在Linux操作系统环境下使用Socket接口进行网络编程,这是构建服务器端和...

    Linux Socket两则示例

    本篇将深入探讨标题为"Linux Socket两则示例"的资源,其中包括`echo_server.c`和`echo_client.c`两个源代码文件,以及对应的可执行文件`echo_server`和`echo_client`,这些示例主要展示了TCP协议的使用。 首先,让...

    linux下socket和fork结合使用的例子

    总结来说,`socket`和`fork`在Linux下的结合使用,允许服务器高效地处理多个并发客户端请求。每个客户端请求都会生成一个新的子进程,确保了请求处理的并发性和隔离性。这样的设计模式在多用户交互式应用,如Web...

    Linux下的简单socket编程示例

    在Linux下的socket的简单编程示例,使用标准C,一共两个文件,一个客户端一个服务端。 相关文章http://blog.csdn.net/mimiduck/archive/2011/05/04/6393663.aspx

    linux net socket 编程示例

    本示例主要关注Linux环境下的网络编程,特别是使用Socket API进行网络通信的基本步骤。标签"2410 socket linux"表明这是一个关于Linux系统下Socket编程的教程,可能是针对嵌入式开发平台或者初学者。 Socket编程...

    linux下socket编程(广播组播和udp)源码

    Linux下的Socket编程是网络通信的重要组成部分,特别是在服务器端开发中占据着核心地位。Socket接口提供了在不同进程间传输数据的能力,而广播、组播和UDP则是在特定场景下实现网络通信的有效方式。以下是对这些概念...

    linux 下socket客户端开发

    在本教程中,我们将探讨如何在Linux环境下开发一个基于TCP协议的Socket客户端,同时利用Fork进程技术来实现多连接或者并发处理。 **一、TCP协议与Socket接口** TCP(Transmission Control Protocol)是一种面向...

    Linux下Socket编程基础详解(含网络传输实例代码)

    ### Linux下Socket编程基础详解 #### 一、引言 在深入探讨Socket编程之前,我们首先需要理解什么是Socket。在计算机网络中,Socket是应用程序与网络通信之间的一个接口,它提供了一种方式来建立网络连接并进行数据...

    linux下的socket聊天室程序

    10. **学习资源**:学习Socket编程,可以参考《UNIX Network Programming》等经典书籍,同时网上有许多关于Linux Socket编程的教程和示例代码可供学习。 总之,"Linux下的socket聊天室程序"是一个很好的实践项目,...

    跨平台的socket库,windows-linux-socket

    5. `main.cpp`:示例程序,展示了如何使用这个跨平台的Socket库。 在实际项目中,开发者可以使用这个库来编写网络服务程序,无论是服务器端还是客户端,都能够在Windows和Linux系统上无缝运行。通过这种方式,...

    LINUX下C++socket

    本资源提供了一个简单的C++实现的客户端(client)和服务器(server)示例,帮助初学者理解如何在Linux环境下使用Socket API进行网络编程。 Socket编程涉及到几个关键概念: 1. **Socket接口**:Socket是进程间...

    实战Linux Socket 编程-示例源码

    在Linux系统中,Socket是一种进程间通信机制,它允许不同进程之间通过网络进行数据交换。本实战教程将通过具体的源码实例,帮助你深入理解Linux Socket编程的核心概念和技巧。 一、Socket基础知识 Socket是网络通信...

    实战Linux socket编程Linux Socket Programming By Example

    《实战Linux Socket编程》是关于网络编程领域的一本经典书籍,专注于Linux系统下的socket接口使用。这本书通过实例展示了如何在Linux环境下进行网络通信,涵盖了从基础的socket创建、连接到高级的多线程、多进程并发...

    Linux Socket教程.zip

    总的来说,这个Linux Socket教程全面地覆盖了从基本的Socket创建到高级的网络编程技术,对于任何想要在Linux环境下进行网络编程的开发者来说,都是一份宝贵的资源。通过深入学习这些文档,读者将能够熟练地构建和...

    Linux下socket tcp 简单示例

    包括服务器端与客户端的简单示例。值得一提的是其中makefile的编写,一个makefile文件生成两个目标文件,这也是makefile的强大之处吧. 在我的博客中有介绍...

    Linux系统socket通信程序

    在本项目中,我们深入探讨了如何在Linux环境下利用Socket API实现不同进程间的通信,包括本地文件操作以及TCP/IP协议栈的运用。下面将详细阐述相关知识点。 一、Linux Socket基础 Socket是操作系统提供的一种接口,...

Global site tag (gtag.js) - Google Analytics