在云计算领域中,C语言中的Socket programming是一种非常重要的技术,它是实现网络通信的基础。Socket是一种通信协议,可以使不同计算机之间进行数据传输和通信。
以下是一些示例代码和教程:
#include<stdio.h>
#include <stdlib.h>
#include<string.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <netinet/in.h>
int main(int argc, char *argv[])
{
int sockfd, new_sockfd;
socklen_t clilen;
char buffer[256];
struct sockaddr_in serv_addr, cli_addr;
int n;
sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd < 0) {
perror("ERROR opening socket");
exit(1);
}
bzero((char *) &serv_addr, sizeof(serv_addr));
serv_addr.sin_family = AF_INET;
serv_addr.sin_addr.s_addr = INADDR_ANY;
serv_addr.sin_port = htons(12345);
if (bind(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0) {
perror("ERROR on binding");
exit(1);
}
listen(sockfd, 5);
clilen = sizeof(cli_addr);
new_sockfd = accept(sockfd, (struct sockaddr *) &cli_addr, &clilen);
if (new_sockfd < 0) {
perror("ERROR on accept");
exit(1);
}
bzero(buffer, 256);
n = read(new_sockfd, buffer, 255);
if (n < 0) {
perror("ERROR reading from socket");
exit(1);
}
printf("Here is the message: %s\n", buffer);
n = write(new_sockfd, "I got your message", 18);
if (n < 0) {
perror("ERROR writing to socket");
exit(1);
}
close(new_sockfd);
close(sockfd);
return 0;
}
#include<stdio.h>
#include <stdlib.h>
#include<string.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <netinet/in.h>
int main(int argc, char *argv[])
{
int sockfd;
struct sockaddr_in serv_addr;
char buffer[256];
int n;
sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd < 0) {
perror("ERROR opening socket");
exit(1);
}
bzero((char *) &serv_addr, sizeof(serv_addr));
serv_addr.sin_family = AF_INET;
serv_addr.sin_addr.s_addr = inet_addr("127.0.0.1");
serv_addr.sin_port = htons(12345);
if (connect(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0) {
perror("ERROR connecting");
exit(1);
}
printf("Please enter the message: ");
bzero(buffer, 256);
fgets(buffer, 255, stdin);
n = write(sockfd, buffer, strlen(buffer));
if (n < 0) {
perror("ERROR writing to socket");
exit(1);
}
bzero(buffer, 256);
n = read(sockfd, buffer, 255);
if (n < 0) {
perror("ERROR reading from socket");
exit(1);
}
printf("%s\n", buffer);
close(sockfd);
return 0;
}
在使用C语言中的Socket编程进行网络通信时,需要注意以下几点:
socket()
函数创建一个套接字,并使用bind()
函数将套接字绑定到一个地址和端口上。listen()
函数监听套接字,并使用accept()
函数接受客户端的连接请求。socket()
函数创建一个套接字,并使用connect()
函数连接到服务器端的地址和端口上。read()
和write()
函数进行数据的读写。close()
函数关闭套接字。在使用C语言中的Socket编程进行网络通信时,需要注意以下�
领取专属 10元无门槛券
手把手带您无忧上云