C语言将二位字符数组拼接成字符串通过socket发送到客户端并输出
时间: 2023-12-23 17:03:28 浏览: 134
假设我们有一个二维字符数组matrix,其中包含了若干个字符串,我们想要将这些字符串拼接成一个字符串,并通过socket发送到客户端,并输出。这个问题可以分为两个子问题:将二维字符数组拼接成一个字符串,以及通过socket发送到客户端并输出。下面是一个示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#define MAX_LINE 1024
int main(int argc, char *argv[]) {
// 创建socket
int sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd < 0) {
perror("socket error");
exit(1);
}
// 设置server地址
struct sockaddr_in servaddr;
memset(&servaddr, 0, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(8888);
inet_pton(AF_INET, "127.0.0.1", &servaddr.sin_addr);
// 连接server
if (connect(sockfd, (struct sockaddr*)&servaddr, sizeof(servaddr)) < 0) {
perror("connect error");
exit(1);
}
// 将二维字符数组拼接成一个字符串
char str[MAX_LINE];
memset(str, 0, MAX_LINE);
int i, j, k = 0;
for (i = 0; i < 3; i++) { // 假设二维数组有3行
for (j = 0; j < strlen(matrix[i]); j++) {
str[k++] = matrix[i][j];
}
}
// 发送数据到客户端
if (send(sockfd, str, strlen(str), 0) < 0) {
perror("send error");
exit(1);
}
// 输出数据
printf("send data: %s\n", str);
// 关闭socket
close(sockfd);
return 0;
}
```
在这个示例代码中,我们首先创建了一个socket,并连接到server。然后,我们将二维字符数组拼接成一个字符串,将该字符串通过socket发送到客户端,并输出该字符串。最后,我们关闭了socket。需要注意的是,这个示例代码中仅仅是将字符串发送到客户端,并没有处理客户端的响应。
阅读全文