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编程可能涉及更多的错误处理和异常情况的处理。在实际应用中,还需要根据具体需求进行相应的处理和扩展。
版权声明:本文标题:socket编程c语言代码 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1703198748h441947.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论