测试环境
- Receiver: x86 Ubuntu
- Sender: arm64 android
发送整型数
C语言和套接字库来发送一个整型变量(int)的客户端程序。
- 它首先创建一个TCP套接字,然后连接到指定的服务器地址和端口。
- 接着,它将一个整型变量(int)转换为网络字节序(大端),
- 并使用send()函数发送给服务器。最后,它关闭套接字并退出
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <unistd.h>
#define SERVER_IP "127.0.0.1" // 服务器IP地址
#define SERVER_PORT 8888 // 服务器端口号
int main(int argc, char* argv[])
{
const char *ip = SERVER_IP;
if(argc == 2){
ip = argv[1];
}
fprintf(stdout, "ip:%s\n", ip);
int sock; // 套接字描述符
struct sockaddr_in server; // 服务器地址结构体
int data = 1234; // 要发送的整型数据
int n; // 发送或接收的字节数
// 创建一个TCP套接字
sock = socket(AF_INET, SOCK_STREAM, 0);
if (sock == -1)
{
perror("socket failed");
exit(1);
}
// 设置服务器地址结构体
memset(&server, 0, sizeof(server));
server.sin_family = AF_INET;
server.sin_addr.s_addr = inet_addr(ip);
server.sin_port = htons(SERVER_PORT);
// 连接到服务器
if (connect(sock, (struct sockaddr *)&server, sizeof(server)) == -1)
{
perror("connect failed");
exit(2);
}
#if 0
// 将整型数据转换为网络字节序(大端)
data = htonl(data);
// 发送整型数据给服务器
n = send(sock, &data, sizeof(data), 0);
if (n == -1)
{
perror("send failed");
exit(3);
}
#else
unsigned char sendbuf[4];
sendbuf[0] = data & 0xff;
sendbuf[1] =

文章讲述了如何使用C语言通过套接字在x86Ubuntu和arm64Android之间进行TCP通信,包括发送整型数值,处理网络字节序,以及在服务器端接收数据的示例。
最低0.47元/天 解锁文章
3612





