admin 管理员组

文章数量: 887021


2023年12月22日发(作者:matlab中strcat用法)

socket编程c语言代码

以下是一个简单的socket编程的C语言代码示例:

```c

#include

#include

#include

#include

#include

#include

#include

#define PORT 8080

#define BUFFER_SIZE 1024

int main() {

int sockfd, newsockfd;

struct sockaddr_in server_addr, client_addr;

socklen_t client_len;

char buffer[BUFFER_SIZE];

// 创建socket

sockfd = socket(AF_INET, SOCK_STREAM, 0);

if (sockfd < 0) {

perror("Error opening socket");

exit(1);

}

// 设置服务器地址

memset(&server_addr, 0, sizeof(server_addr));

server__family = AF_INET;

server__addr.s_addr = INADDR_ANY;

server__port = htons(PORT);

// 绑定socket到指定地址和端口

if (bind(sockfd, (struct sockaddr *)&server_addr,

sizeof(server_addr)) < 0) {

perror("Error binding socket");

exit(1);

}

// 监听连接请求

if (listen(sockfd, 5) < 0) {

perror("Error listening");

exit(1);

}

printf("Server listening on port %dn", PORT);

while (1) {

// 接受客户端连接

client_len = sizeof(client_addr);

newsockfd = accept(sockfd, (struct sockaddr

*)&client_addr, &client_len);

if (newsockfd < 0) {

perror("Error accepting connection");

exit(1);

}

printf("Client connectedn");

// 与客户端进行通信

while (1) {

memset(buffer, 0, BUFFER_SIZE);

int bytes_read = read(newsockfd, buffer,

BUFFER_SIZE - 1);

if (bytes_read < 0) {

perror("Error reading from socket");

exit(1);

}

{

if (bytes_read == 0) {

printf("Client disconnectedn");

break;

}

printf("Received message: %s", buffer);

// 处理客户端请求

// 这里可以根据具体需求进行相应的处理

// 发送响应给客户端

char response[] = "Server received your message";

if (write(newsockfd, response, strlen(response)) < 0)

perror("Error writing to socket");

exit(1);

}

}

// 关闭与客户端的连接

close(newsockfd);

}

// 关闭服务器socket

close(sockfd);

return 0;

}

```

这段代码实现了一个简单的socket服务器,它监听指定的端口(8080),接受客户端的连接请求,并与客户端进行通信。服务器接收客户端发送的消息,并将收到的消息打印出来,然后发送一个固定的响应给客户端。服务器会一直监听并处理客户端的请求,直到客户端断开连接。

请注意,这只是一个简单的示例代码,实际的socket编程可能涉及更多的错误处理和异常情况的处理。在实际应用中,还需要根据具体需求进行相应的处理和扩展。


本文标签: 客户端 处理 服务器 代码 编程