嵌入式linux项目介绍与分享-基于 Linux 下 Socket 网络编程的局域网聊天室
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#define BUF_SIZE 1024
#define PORT 8000
#define SERVER_IP "192.168.1.100"
int main() {
int sockfd;
char buffer[BUF_SIZE];
struct sockaddr_in server_addr;
int len;
// 创建 socket 文件描述符
sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd < 0) {
perror("socket creation failed");
exit(EXIT_FAILURE);
}
// Filling server information
memset(&server_addr, 0, sizeof(server_addr));
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(PORT);
server_addr.sin_addr.s_addr = inet_addr(SERVER_IP);
// 连接到服务器
if (connect(sockfd, (struct sockaddr *)&server_addr, sizeof(server_addr)) < 0) {
perror("connection with server failed");
exit(EXIT_FAILURE);
}
// 无限循环,处理消息发送和接收
while (1) {
// 输入消息
printf("Enter message : ");
fgets(buffer, BUF_SIZE, stdin);
// 发送消息到服务器
if (send(sockfd, buffer, strlen(buffer), 0) < 0) {
perror("Send failed");
exit(EXIT_FAILURE);
}
// 从服务器接收消息
if ((len = recv(sockfd, buffer, BUF_SIZE, 0)) < 0) {
perror("recv failed");
exit(EXIT_FAILURE);
}
// 打印接收到的消息
printf("Received message: %s", buffer);
}
// 关闭 socket
close(sockfd);
return 0;
}
这段代码是一个简单的基于 Linux 的网络聊天室客户端示例。它使用了 socket 编程接口,通过 TCP 协议连接到服务器,并在一个无限循环中处理消息的发送和接收。代码注重简洁性和可读性,适合作为嵌入式 Linux 网络编程初学者的入门示例。
评论已关闭