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

C语言 socket 例子

 
阅读更多

借此地方整理以下socket编程的多种语言的实现,socket可以跨平台的通信,因此多语言、多平台下的实现有必要了解的。代码都是源自网上,感谢网友的分享。

 

socket编程在windows下的C语言实现,dev C++下编译通过

编译时设置编译选项 工具-->编译选项-->编译器,勾选在连接器命令行加入以下命令,在对话框中填-lwsock32

//server.c

#include <stdio.h>

#include <Winsock2.h>

int main()

{

    WORD wVersionRequested;

    WSADATA wsaData;

    int err;

   

    wVersionRequested = MAKEWORD( 1, 1 );

   

    err = WSAStartup( wVersionRequested, &wsaData );

    if ( err != 0 ) {

        return;

    }

   

    if ( LOBYTE( wsaData.wVersion ) != 1 ||

    HIBYTE( wsaData.wVersion ) != 1 ) {

        WSACleanup();

        return;

    }

    SOCKET sockSrv=socket(AF_INET,SOCK_STREAM,0);

   

    SOCKADDR_IN addrSrv;

    addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);

    addrSrv.sin_family=AF_INET;

    addrSrv.sin_port=htons(6000);

   

    bind(sockSrv,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));

   

    listen(sockSrv,5);

   

    SOCKADDR_IN addrClient;

    int len=sizeof(SOCKADDR);

    while(1)

    {

        SOCKET sockConn=accept(sockSrv,(SOCKADDR*)&addrClient,&len);

        char sendBuf[50];

        sprintf(sendBuf,"Welcome %s to here!",inet_ntoa(addrClient.sin_addr));

        send(sockConn,sendBuf,strlen(sendBuf)+1,0);

        char recvBuf[50];

        recv(sockConn,recvBuf,50,0);

        printf("%s\n",recvBuf);

        closesocket(sockConn);

    }

}

 

//客户端代码

#include <stdio.h>

#include <Winsock2.h>

int main()

{

    WORD wVersionRequested;

    WSADATA wsaData;

    int err;

   

    wVersionRequested = MAKEWORD( 1, 1 );

   

    err = WSAStartup( wVersionRequested, &wsaData );

    if ( err != 0 ) {

        return;

    }

   

    if ( LOBYTE( wsaData.wVersion ) != 1 ||

        HIBYTE( wsaData.wVersion ) != 1 ) {

        WSACleanup( );

        return;

    }

    SOCKET sockClient=socket(AF_INET,SOCK_STREAM,0);

   

    SOCKADDR_IN addrSrv;

    addrSrv.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");

    addrSrv.sin_family=AF_INET;

    addrSrv.sin_port=htons(6000);

    connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));

    send(sockClient,"hello",strlen("hello")+1,0);

    char recvBuf[50];

    recv(sockClient,recvBuf,50,0);

    printf("%s\n",recvBuf);

    closesocket(sockClient);

    WSACleanup();

}

 

linux下参考

http://blog.sina.com.cn/s/blog_4ad7c25401019qqb.html

 

ldd server 查看依赖的动态库

gcc 可以将多个源文件编译成一个动态库或可执行文件

 

 链接分:动态链接、静态链接两种

  • 大小: 151.6 KB
分享到:
评论

相关推荐

    C语言socket编程指南(讲解+实例)

    C语言socket编程指南(讲解+实例)

    C语言socket发送http请求的例子源代码

    C语言socket发送http请求的例子源代码 一个使用C语言socket发送http请求的例子 这是一个linux下使用C的标准socket,进行http访问的例子。通过socket发送get请求,从中国天气网获得指定城市的天气。 该例子在ubuntu ...

    关于C语言 socket数据 文件传输的例子

    在IT领域,网络编程是不可或缺的一...这个例子提供了从发送端到接收端的文件传输实现,对于理解C语言socket编程和网络文件传输的原理非常有帮助。通过实践和调试这样的代码,可以深入理解和掌握网络编程的核心技术。

    c语言socket通信例子

    1. 包括client和server。 2. 功能是clent告诉server文件名,向server要一个文件。 3. 本人在android的ndk环境编译在linux上跑过没有问题。 4. 在其他环境上跑应该也是没有问题的。

    一个使用C语言socket发送http请求的例子

    这是一个linux下使用C的标准socket,进行http访问的例子。通过socket发送get请求,从中国天气网获得指定城市的天气。 该例子在ubuntu 14.04和AM3358的嵌入式linux3.14下实际测试可用。 如果需要在嵌入式linux下使用...

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

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

    windows下C语言socket

    在这个例子中,我们首先初始化Winsock,然后创建一个TCP类型的socket,并将其绑定到本地的任意IP地址和端口号12345。`listen()`函数使服务器进入监听状态,等待客户端连接。当有客户端连接时,`accept()`函数返回一...

    C语言socket网络UDP编程例子源代码DevC++工程

    本文将深入讲解如何在C语言环境中,利用socket API进行UDP(User Datagram Protocol)网络编程。这里我们以"DevC++"作为开发环境,它是一款轻量级的C/C++集成开发环境,非常适合初学者学习。 首先,了解UDP的基本...

    C语言的经典例子 经典 经典

    这涉及到网络编程,C语言可以用于编写底层的网络应用,比如处理TCP/IP协议栈,进行socket通信。这个程序可能是通过调用操作系统提供的API来实现IP地址的设置,展示了C语言在系统编程中的应用。 最后,"说明.txt"很...

    c语言SOCKEt编程指南.doc

    总的来说,这份"C语言SOCKEt编程指南"是为初学者准备的,旨在帮助读者理解和实践Socket编程,涵盖了从基础概念到高级技术的广泛内容。通过阅读和实践文档中的例子,读者将能够编写出能连接到Internet的C语言程序,...

    waisock-功能齐全的C语言socket及SSL封装类及使用例子源代码(v01.06.20171110)

    waisock-功能齐全的C语言socket及SSL封装类及使用例子源代码(版本v01.06.20171110)。内含调用socket封装类和监控通信的例子,其中监控代理和监控终端可以直接在自己的项目中使用,免去很多工作量。

    waisock-功能齐全的C语言socket及SSL封装类及使用例子源代码

    总结起来,waisock是一个强大且实用的C语言socket及SSL封装库,它的出现使得C语言的网络编程变得更加便捷和安全。通过深入学习和利用waisock,开发者可以在TCP通信和安全加密方面提升专业技能,为项目开发带来显著的...

    LINUX下JAVA程序与C语言程序通过SOCKET通信的简单例子.pdf

    LINUX下JAVA程序与C语言程序通过SOCKET通信的简单例子.pdf

    C语言实现socket简单通信实例

    在这个简单的C语言Socket通信实例中,我们将探讨如何创建一个服务器端来接收和响应客户端的请求。 首先,服务器端的核心工作流程如下: 1. **创建Socket**: 使用`socket()`函数创建一个Socket描述符。在这个例子...

    c语言socket实现的http服务器

    在C语言中,我们可以使用标准库`&lt;sys/socket.h&gt;`来创建和操作Socket。 创建一个HTTP服务器的第一步是绑定一个Socket到特定的IP地址和端口号。在这个例子中,服务器监听9000端口。端口号的选择很重要,因为它必须是...

    c语言SOCKET编程指南[定义].pdf

    Socket编程在IT领域中是网络通信的基础,尤其在C语言中,它是构建客户端-服务器应用程序的关键。本指南主要面向那些想要学习或深入了解Socket编程的初学者。以下是对标题和描述中涉及的一些关键知识点的详细解释: ...

    C语言TCP例子

    本示例将探讨一个用C语言实现的TCP(传输控制协议)网络连接的例子。TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议,是互联网协议栈中的核心组件。 TCP的特点包括: 1. **面向连接**:在数据传输前,...

    c语言实用tcp例子

    在这个“c语言实用tcp例子”中,我们能看到如何用C语言实现简单的TCP通信。 首先,让我们来了解TCP通信的基本概念。TCP建立连接前需要三次握手,确保双方都能正常通信。一旦连接建立,数据便可以在两个端点之间双向...

Global site tag (gtag.js) - Google Analytics