简单的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客户端通讯V1.2.exe”和“TCP服务器通讯V1.2.exe”的文件,它们很可能就是用于测试TCP连接和MODBUS-TCP通信的软件。TCP...
基恩士上位机TCP通讯协议是用于连接基恩士(Keyence)PLC与上位机(如PC)的一种通信方法,它基于标准的TCP/IP协议栈,为用户提供了直接与PLC交换数据的途径,无需额外购买专门的通信软件。通过这种协议,开发者可以...
在上位机与基恩士PLC进行TCP通讯时,首先需要确保通信协议的支持。KV系列的PLC支持多种通讯协议,例如EtherNet/IP、MC协议、FTP协议和KV新协议等。KV-EP21V、KV-7500、KV-5500、KV-NC1EP等型号都支持这些协议,可以...
本篇文章将深入探讨如何使用VB.NET实现TCP通讯,以及在实际应用中可能涉及的关键知识点。 首先,建立TCP连接的基础是Socket类,它是.NET Framework提供的网络通信接口。在VB.NET中,可以使用`System.Net.Sockets`...
首先,要实现AB PLC与第三方设备的ModbusTCP通讯,你需要了解AB PLC的以太网接口和配置。大多数现代AB PLCs如Logix5000系列都内置了以太网接口,支持多种网络协议,包括ModbusTCP。你需要在PLC的编程软件如RSLogix ...
《三菱PLC实现MODBUS TCP通讯详解》 在现代工业自动化系统中,PLC(可编程逻辑控制器)与各类设备的通信是至关重要的。本文将详细介绍如何使用三菱Q系列PLC通过MODBUS TCP协议实现通信,以QJ71E71-100以太网模块为...
TCP通讯简单实例,包含服务端(server)与客户端(client)的源程序,推荐编译环境:Microsoft visual stuio 2012(2010)。
在C语言中实现TCP通讯,我们需要利用套接字(socket)API,这是操作系统提供的用于网络编程的接口。 首先,创建TCP服务器端的过程包括以下步骤: 1. **创建套接字**:使用`socket()`函数创建一个套接字描述符,指定...
本篇将深入探讨TCP和MODBUS-TCP协议,并介绍一款名为“TCP和MODBUS-TCP通讯调试软件V1.2”的通用工具,适用于Windows CE和Windows XP平台。 首先,TCP是一种面向连接的传输层协议,其主要特点包括:三次握手建立...
总结起来,"wince与pc端TCP通讯"涉及的知识点包括: 1. TCP通信的基本原理:连接建立、数据传输和连接释放。 2. WinCE平台上的Winsock API使用:`WSAStartup()`, `socket()`, `connect()`, `closesocket()`, `send...
在给定的压缩包文件“易语言源码易语言TCP通讯类源码.rar”中,包含的是使用易语言编写的TCP通信类的源代码。TCP(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,是互联网...
在IT行业中,TCP(传输控制协议)是一种广泛用于网络通信的协议,确保数据的可靠传输。TCP通过建立连接、确认序列号、流量...无论是简单的数据传输还是复杂的系统集成,都能借助LabVIEW实现高效、可靠的TCP通讯测试。
本教程将深入探讨基于Winsock库的简单TCP通信实现,适用于C编程语言。Winsock,也称为Windows Socket,是Windows操作系统中用于网络编程的API,它为开发者提供了标准接口来创建网络应用程序。 首先,TCP(传输控制...
在C#中,可以利用.NET框架的网络编程功能,配合第三方库(如NModbus或SharpModbus)来实现Modbus TCP通讯。这些库提供了方便的API,允许开发者读写Modbus寄存器,创建Modbus客户端和服务器应用。开发时需要理解...
**ModbusTcp通讯助手源码** 是一个专为新手设计的学习资源,旨在帮助开发者了解和掌握Socket通信技术,特别是与Modbus通信协议相关的应用。在本文中,我们将深入探讨Modbus TCP通信的基本概念,以及如何通过Socket...
标题中的"S7-1200 通过PROFINET接口进行ModbusTCP通讯"涉及到的是在工业自动化领域中,如何利用西门子S7-1200系列PLC(可编程逻辑控制器)通过PROFINET网络实现与其它支持ModbusTCP协议设备的通信。描述中的内容...
以下是一个简单的客户端示例: ```csharp using HslCommunication; using HslCommunication.Modbus; // 创建ModBus客户端 var client = new ModbusMaster(); // 设置服务器IP和端口 client.RemoteIp = "192.168.1...
在这个“vb.net TCP通讯实例”中,我们将探讨如何利用VB.NET实现TCP客户端和服务器的通信。 TCP协议的核心特性包括连接建立、数据分片、顺序传输、确认机制以及流量控制,这些确保了数据在不可靠的网络环境中能够...
本项目“C# Tcp通讯.rar”旨在通过C#编程语言实现TCP服务器与客户端之间的信息交换,模拟一个简单的聊天室功能。 TCP是一种面向连接的协议,它在数据传输前需要建立连接,确保了数据的顺序性和可靠性。在C#中,我们...
Socket编程在IT行业中是网络通信的基础,特别是在C#这样的编程语言中,Socket是实现TCP通讯的重要工具。本示例提供了一个完整的C# Socket通讯/TCP通讯的代码demo,旨在帮助开发者理解和应用网络通信技术。 首先,...