socket函数使用示例,使用C语言
时间: 2024-04-10 18:34:19 浏览: 64
以下是一个简单的示例,展示如何在C语言中使用socket函数进行网络编程:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#define PORT 8080
int main() {
int sockfd, newsockfd;
struct sockaddr_in serv_addr, cli_addr;
socklen_t clilen;
char buffer[1024] = {0};
char *message = "Hello from server!";
// 创建socket
sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd < 0) {
perror("Socket creation failed");
exit(EXIT_FAILURE);
}
memset(&serv_addr, '0', sizeof(serv_addr));
serv_addr.sin_family = AF_INET;
serv_addr.sin_addr.s_addr = INADDR_ANY;
serv_addr.sin_port = htons(PORT);
// 绑定地址和端口
if (bind(sockfd, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0) {
perror("Bind failed");
exit(EXIT_FAILURE);
}
// 监听连接请求
if (listen(sockfd, 5) < 0) {
perror("Listen failed");
exit(EXIT_FAILURE);
}
clilen = sizeof(cli_addr);
// 接受连接请求
newsockfd = accept(sockfd, (struct sockaddr *)&cli_addr, &clilen);
if (newsockfd < 0) {
perror("Accept failed");
exit(EXIT_FAILURE);
}
// 从客户端接收消息
read(newsockfd, buffer, 1024);
printf("Client: %s\n", buffer);
// 向客户端发送消息
write(newsockfd, message, strlen(message));
close(newsockfd);
close(sockfd);
return 0;
}
```
这个示例创建了一个服务器,监听端口8080,并通过socket函数进行了绑定、监听和接受连接请求的操作。在接受连接后,从客户端接收消息并向客户端发送消息。请注意,这只是一个简单的示例,实际应用中可能需要更多的错误处理和逻辑。
阅读全文