C linux 网络编程
时间: 2023-11-12 09:49:01 浏览: 37
C语言在Linux中进行网络编程时,可以使用socket接口实现。socket是一种系统调用和特殊的I/O文件,它在物理上对应一个网络连接,在编程上对应一个文件描述符。通过调用socket函数创建一个socket,并设置其相关参数(如地址、端口等),然后使用connect函数连接到服务器。连接成功后,可以使用write函数向socket写入数据,数据将被发送到网络并传输到对方的机器。同时,还可以使用read函数从socket读取数据。
下面是一个示例代码,展示了如何在C语言中进行简单的网络编程:
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#include <errno.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define PORT 80 //HTTP知名端口号
#define IP_ADDR "39.106.226.142" //网站服务器地址
int main() {
int sockfd;
struct sockaddr_in addr;
int len = sizeof(struct sockaddr_in);
// 创建socket
if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1) {
perror("socket error\n");
exit(1);
}
printf("socket created successfully, socket id is %d\n", sockfd);
// 设置服务器地址
bzero(&addr, sizeof(struct sockaddr_in));
addr.sin_family = AF_INET;
addr.sin_port = htons(PORT);
addr.sin_addr.s_addr = inet_addr(IP_ADDR);
// 连接服务器
if (connect(sockfd, (struct sockaddr*)(&addr), sizeof(struct sockaddr)) < 0) {
perror("connect error");
exit(1);
}
printf("connect to server successfully\n");
return 0;
}