VxWorks中网络编程实现TCP协议的Socket通信
作者:佚名
上传时间:2023-05-25
运行软件:C语言
软件版本:VxWorks 7.0
版权申诉
本示例代码演示了在VxWorks系统中通过使用Socket API实现TCP协议的网络编程,包括建立连接、收发数据等基本操作,为后续网络编程开发提供基础。
#include <stdio.h>
#include <string.h>
#include <ioLib.h>
#include <sockLib.h>
#include <inetLib.h>
#define SERVER_PORT_NUM 1234
#define SERVER_HOST_ADDR "192.168.1.2"
#define MAX_BUF_SIZE 256
void tcpServer()
{
int sockFd, newSockFd, sockAddrSize, recvLen, sendLen;
struct sockaddr_in serverAddr, clientAddr;
char recvBuf[MAX_BUF_SIZE];
char sendBuf[MAX_BUF_SIZE];
// 创建Socket
if ((sockFd = socket(AF_INET, SOCK_STREAM, 0)) == ERROR)
{
perror("socket");
return;
}
// 设置服务器地址信息
bzero((char *)&serverAddr, sizeof(serverAddr));
serverAddr.sin_family = AF_INET;
serverAddr.sin_addr.s_addr = inet_addr(SERVER_HOST_ADDR);
serverAddr.sin_port = htons(SERVER_PORT_NUM);
// 绑定Socket
if (bind(sockFd, (struct sockaddr *)&serverAddr, sizeof(serverAddr)) == ERROR)
{
perror("bind");
close(sockFd);
return;
}
// 监听连接请求
if (listen(sockFd, 5) == ERROR)
{
perror("listen");
close(sockFd);
return;
}
sockAddrSize = sizeof(clientAddr);
while (1)
{
// 接受连接请求
if ((newSockFd = accept(sockFd, (struct sockaddr *)&clientAddr, &sockAddrSize)) == ERROR)
{
perror("accept");
close(sockFd);
return;
}
printf("Connection from %s, port %d\n", inet_ntoa(clientAddr.sin_addr), ntohs(clientAddr.sin_port));
// 收取数据
if ((recvLen = recv(newSockFd, recvBuf, sizeof(recvBuf), 0)) == ERROR)
{
perror("recv");
close(newSockFd);
continue;
}
recvBuf[recvLen] = '\0';
printf("Received %d bytes: %s\n", recvLen, recvBuf);
// 发送数据
snprintf(sendBuf, sizeof(sendBuf), "Hello, %s", recvBuf);
sendLen = strlen(sendBuf);
if ((send(newSockFd, sendBuf, sendLen, 0)) != sendLen)
{
perror("send");
}
// 关闭Socket
close(newSockFd);
}
}
void tcpClient()
{
int sockFd, sockAddrSize, connectStatus, recvLen, sendLen;
struct sockaddr_in serverAddr;
char recvBuf[MAX_BUF_SIZE];
char sendBuf[MAX_BUF_SIZE];
char *serverHostName = "192.168.1.2";
// 创建Socket
if ((sockFd = socket(AF_INET, SOCK_STREAM, 0)) == ERROR)
{
perror("socket");
return;
}
// 设置服务器地址信息
bzero((char *)&serverAddr, sizeof(serverAddr));
serverAddr.sin_family = AF_INET;
serverAddr.sin_addr.s_addr = inet_addr(serverHostName);
serverAddr.sin_port = htons(SERVER_PORT_NUM);
// 连接服务器
if ((connectStatus = connect(sockFd, (struct sockaddr *)&serverAddr, sizeof(serverAddr))) == ERROR)
{
perror("connect");
close(sockFd);
return;
}
// 发送数据
printf("Enter message to send: ");
fgets(sendBuf, MAX_BUF_SIZE, stdin);
sendLen = strlen(sendBuf);
if ((send(sockFd, sendBuf, sendLen, 0)) != sendLen)
{
perror("send");
close(sockFd);
return;
}
// 接收数据
if ((recvLen = recv(sockFd, recvBuf, sizeof(recvBuf), 0)) == ERROR)
{
perror("recv");
close(sockFd);
return;
}
recvBuf[recvLen] = '\0';
printf("%s\n", recvBuf);
// 关闭Socket
close(sockFd);
}
void testTcp()
{
int choice;
while (1)
{
printf("1. Server\n");
printf("2. Client\n");
printf("0. Quit\n");
printf("Enter choice: ");
scanf("%d", &choice);
getchar();
switch (choice)
{
case 1:
tcpServer();
break;
case 2:
tcpClient();
break;
case 0:
return;
default:
printf("Invalid choice\n");
}
}
}
免责申明:文章和图片全部来源于公开网络,如有侵权,请通知删除 server@dude6.com
用户评论
相关推荐
VxWorks中网络编程实现TCP协议的Socket通信
本示例代码演示了在VxWorks系统中通过使用Socket API实现TCP协议的网络编程,包括建立连接、收发数据等基本操作,为后续网络编程开发提供基础。#include <stdio.h&g
VxWorks 7.0
C语言
2023-05-25 19:20
基于TCP协议的Socket通信编程实现C语言
基于TCP协议的Socket通信编程实现C语言
ZIP
2.2MB
2020-08-31 22:12
TCP协议中Socket编程的通信原理深度解析
本文档分析了TCP协议中利用Socket编程所使用的一些重要函数,并深入分析了Socket通信所使用的一些技术。
DOCX
108KB
2020-08-11 15:10
Python中基于TCP协议的socket网络编程实现
本示例代码展示了如何在Python中使用socket模块实现TCP协议的网络编程,包括服务器和客户端的搭建、连接建立、消息发送与接收等操作。通过创建基于TCP的socket网络连接,实现了消息的可靠传
Python 3.8.5
Python
2023-05-12 05:42
TCP/IP网络编程实现Socket通信
本文将介绍如何使用TCP/IP协议进行Socket编程,实现网络通信。我们将使用Java程序设计,提供示例代码并对代码进行释义。最后,我们会对本文进行总结。TCP/IP协议TCP/IP协议是一组用
JDK 14
Java
2023-04-01 12:49
socket网络编程C#实现tcp ip协议
利用tcp\ip协议,实现两个人聊天的功能,同时拥有表情的收发功能(代码中使用的物理地址,下载后更改成自己电脑中的地址就可以).
ZIP
0B
2020-02-14 05:04
socket网络编程TCP协议UDP协议传输
socket网络编程TCP协议UDP协议服务器和客户端之间的传输
RAR
0B
2019-04-27 10:07
Java实现基于TCP协议的Socket通信
(1)实现了服务器和客户端之间的连接通信 (2)实现了客户端与客户端之间的连接通信
ZIP
0B
2019-01-13 22:17
VxWorks网络编程实现TCP/IP协议通讯
示例代码演示了如何使用VxWorks操作系统实现TCP/IP协议的网络编程,包括创建socket、绑定端口、监听连接和发送数据等步骤。代码在接收到客户端的连接请求后,会将收到的数据回传给客户端。#i
VxWorks 6.9
Wind River Systems
2023-03-25 18:28
VxWorks中如何使用socket实现TCP通信
介绍在VxWorks操作系统中如何使用socket接口实现TCP通信,包括如何创建socket、连接和数据传输的具体实现方式。#include <vxWorks.h>#include
VxWorks 6.9
C语言
2023-03-30 19:58