`
东边日出西边雨
  • 浏览: 262698 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

简单的tcp通讯

    博客分类:
  • c
 
阅读更多

简单的tcp通讯例子。

 

server端

 

/* tcp_server.c */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>

#define MYPORT 8000

int main()
{
    int server_fd, client_fd;
    struct sockaddr_in my_addr, client_addr;
    server_fd = socket(AF_INET, SOCK_STREAM, 0);

    my_addr.sin_family = AF_INET; /* 主机字节序 */
    my_addr.sin_port = htons(MYPORT); /* short, 网络字节序 */

    my_addr.sin_addr.s_addr = inet_addr("127.0.0.1");

    bzero(&(my_addr.sin_zero), 8); /* zero the rest of the struct */

    bind(server_fd, (struct sockaddr *)&my_addr, sizeof(struct sockaddr));

    listen(server_fd, 10);

    while (1) {

        char buf[20];
        printf("server is waiting\n");

        int client_len = sizeof(struct sockaddr);

        client_fd = accept(server_fd, (struct sockaddr*)&client_addr, &client_len);

        printf("accepted\n");

        int n = recv(client_fd, buf, 20, 0);

        printf("received from client %s\n", buf);

        for (int i=0; i<n; i++) {
            if (buf[i]>=97 && buf[i]<=122) {
                buf[i] -= 32;
            }
        }

        send(client_fd, buf, 20, 0);

        close(client_fd);
    }

    close(server_fd);

    return 0;
}

 

client端

 

/* tcp_client.c */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>

int main()
{
        int client_fd;
        struct sockaddr_in server_addr;

        server_addr.sin_family = AF_INET;
        server_addr.sin_port = htons(8000);
        server_addr.sin_addr.s_addr = inet_addr("127.0.0.1");
        bzero(&(server_addr.sin_zero), 8);

        client_fd = socket(AF_INET, SOCK_STREAM, 0);

        connect(client_fd, (struct sockaddr *)&server_addr, sizeof(struct sockaddr));

        send(client_fd, "hello\0", 6, 0);

        char buf[20];
        bzero(buf, 20);

        recv(client_fd, buf, sizeof(buf), 0);

        printf("recv %s\n", buf);

        close(client_fd);

        return 0;
}
 

 

分享到:
评论

相关推荐

    TCP和MODBUS-TCP通讯调试软件

    在调试TCP和MODBUS-TCP通讯时,我们需要借助特定的工具。在这个压缩包中,包含两个名为“TCP客户端通讯V1.2.exe”和“TCP服务器通讯V1.2.exe”的文件,它们很可能就是用于测试TCP连接和MODBUS-TCP通信的软件。TCP...

    基恩士上位机TCP通讯协议.rar_PLC 协议_PLC通讯_基恩士tcp_基恩士tcpip_基恩士上位机TCP通讯协议

    基恩士上位机TCP通讯协议是用于连接基恩士(Keyence)PLC与上位机(如PC)的一种通信方法,它基于标准的TCP/IP协议栈,为用户提供了直接与PLC交换数据的途径,无需额外购买专门的通信软件。通过这种协议,开发者可以...

    基恩士上位机TCP通讯协议

    在上位机与基恩士PLC进行TCP通讯时,首先需要确保通信协议的支持。KV系列的PLC支持多种通讯协议,例如EtherNet/IP、MC协议、FTP协议和KV新协议等。KV-EP21V、KV-7500、KV-5500、KV-NC1EP等型号都支持这些协议,可以...

    vb.net实现tcp通讯

    本篇文章将深入探讨如何使用VB.NET实现TCP通讯,以及在实际应用中可能涉及的关键知识点。 首先,建立TCP连接的基础是Socket类,它是.NET Framework提供的网络通信接口。在VB.NET中,可以使用`System.Net.Sockets`...

    AB PLC ModbusTCP以太网通讯

    首先,要实现AB PLC与第三方设备的ModbusTCP通讯,你需要了解AB PLC的以太网接口和配置。大多数现代AB PLCs如Logix5000系列都内置了以太网接口,支持多种网络协议,包括ModbusTCP。你需要在PLC的编程软件如RSLogix ...

    三菱 PLC实现MODUBUS TCP 通讯.pdf

    《三菱PLC实现MODBUS TCP通讯详解》 在现代工业自动化系统中,PLC(可编程逻辑控制器)与各类设备的通信是至关重要的。本文将详细介绍如何使用三菱Q系列PLC通过MODBUS TCP协议实现通信,以QJ71E71-100以太网模块为...

    TCP通讯简单实例

    TCP通讯简单实例,包含服务端(server)与客户端(client)的源程序,推荐编译环境:Microsoft visual stuio 2012(2010)。

    TCP通讯的C语言实现

    在C语言中实现TCP通讯,我们需要利用套接字(socket)API,这是操作系统提供的用于网络编程的接口。 首先,创建TCP服务器端的过程包括以下步骤: 1. **创建套接字**:使用`socket()`函数创建一个套接字描述符,指定...

    TCP和MODBUS-TCP通讯调试软件V1.2_Wince_Winxp_通用版.rar

    本篇将深入探讨TCP和MODBUS-TCP协议,并介绍一款名为“TCP和MODBUS-TCP通讯调试软件V1.2”的通用工具,适用于Windows CE和Windows XP平台。 首先,TCP是一种面向连接的传输层协议,其主要特点包括:三次握手建立...

    wince与pc端TCP通讯

    总结起来,"wince与pc端TCP通讯"涉及的知识点包括: 1. TCP通信的基本原理:连接建立、数据传输和连接释放。 2. WinCE平台上的Winsock API使用:`WSAStartup()`, `socket()`, `connect()`, `closesocket()`, `send...

    易语言源码易语言TCP通讯类源码.rar

    在给定的压缩包文件“易语言源码易语言TCP通讯类源码.rar”中,包含的是使用易语言编写的TCP通信类的源代码。TCP(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,是互联网...

    TCP通讯测试,tcp通讯测试软件,LabView

    在IT行业中,TCP(传输控制协议)是一种广泛用于网络通信的协议,确保数据的可靠传输。TCP通过建立连接、确认序列号、流量...无论是简单的数据传输还是复杂的系统集成,都能借助LabVIEW实现高效、可靠的TCP通讯测试。

    基于winsock的简单TCP通讯

    本教程将深入探讨基于Winsock库的简单TCP通信实现,适用于C编程语言。Winsock,也称为Windows Socket,是Windows操作系统中用于网络编程的API,它为开发者提供了标准接口来创建网络应用程序。 首先,TCP(传输控制...

    ModbusTCP与上位机通讯源码

    在C#中,可以利用.NET框架的网络编程功能,配合第三方库(如NModbus或SharpModbus)来实现Modbus TCP通讯。这些库提供了方便的API,允许开发者读写Modbus寄存器,创建Modbus客户端和服务器应用。开发时需要理解...

    ModbusTcp通讯助手源码

    **ModbusTcp通讯助手源码** 是一个专为新手设计的学习资源,旨在帮助开发者了解和掌握Socket通信技术,特别是与Modbus通信协议相关的应用。在本文中,我们将深入探讨Modbus TCP通信的基本概念,以及如何通过Socket...

    s7-1200 通过profinet接口进行modbusTcp通讯.docx

    标题中的"S7-1200 通过PROFINET接口进行ModbusTCP通讯"涉及到的是在工业自动化领域中,如何利用西门子S7-1200系列PLC(可编程逻辑控制器)通过PROFINET网络实现与其它支持ModbusTCP协议设备的通信。描述中的内容...

    ModBus Tcp 通讯C# +Demo

    以下是一个简单的客户端示例: ```csharp using HslCommunication; using HslCommunication.Modbus; // 创建ModBus客户端 var client = new ModbusMaster(); // 设置服务器IP和端口 client.RemoteIp = "192.168.1...

    vb.net TCP通讯实例

    在这个“vb.net TCP通讯实例”中,我们将探讨如何利用VB.NET实现TCP客户端和服务器的通信。 TCP协议的核心特性包括连接建立、数据分片、顺序传输、确认机制以及流量控制,这些确保了数据在不可靠的网络环境中能够...

    C#Tcp通讯.rar

    本项目“C# Tcp通讯.rar”旨在通过C#编程语言实现TCP服务器与客户端之间的信息交换,模拟一个简单的聊天室功能。 TCP是一种面向连接的协议,它在数据传输前需要建立连接,确保了数据的顺序性和可靠性。在C#中,我们...

    C# Socket通讯/TCP通讯,完整代码demo

    Socket编程在IT行业中是网络通信的基础,特别是在C#这样的编程语言中,Socket是实现TCP通讯的重要工具。本示例提供了一个完整的C# Socket通讯/TCP通讯的代码demo,旨在帮助开发者理解和应用网络通信技术。 首先,...

Global site tag (gtag.js) - Google Analytics