服务器报错:can't create socket: Read-only file system

1.打开服务器时报错:can't create socket: Read-only file system

发现只能进行只读操作。

产生原因:

1.服务器异常关机引起的;

2.tmux组件有时会引起这种情况

解决方案:

1.fdisk -l 会罗列出所有分区,找到系统/根分区

2.运行fsck.ext4 -y /dev/sda2 (parted /dev/sdb print list查看文件系统) 时间不一,有的运行时间较长,有的运行时间较短。

3.reboot重启

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
#include <iostream> #include <fstream> #include <winsock2.h> #pragma comment(lib, "ws2_32.lib") int main() { WSADATA wsaData; if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0) { std::cerr << "Failed to initialize Winsock." << std::endl; return 1; } // 创建套接字 SOCKET clientSocket = socket(AF_INET, SOCK_STREAM, 0); if (clientSocket == INVALID_SOCKET) { std::cerr << "Failed to create socket." << std::endl; WSACleanup(); return 1; } // 设置服务器地址 sockaddr_in serverAddr{}; serverAddr.sin_family = AF_INET; serverAddr.sin_port = htons(8888); // FTP默认端口为21 serverAddr.sin_addr.s_addr = htonl(2130706433); // 修改为实际的服务器IP地址 // 连接服务器 if (connect(clientSocket, (sockaddr*)&serverAddr, sizeof(serverAddr)) == SOCKET_ERROR) { std::cerr << "Failed to connect to server." << std::endl; closesocket(clientSocket); WSACleanup(); return 1; } std::cout << "Connected to server. Ready to send files." << std::endl; // 发送文件名 const char* fileName = "test.txt"; // 修改为实际的文件名 send(clientSocket, fileName, strlen(fileName) + 1, 0); std::cout << "Sending file: " << fileName << std::endl; // 打开本地文件进行读取 std::ifstream inputFile(fileName, std::ios::in); if (!inputFile) { std::cerr << "Failed to open file for reading." << std::endl; closesocket(clientSocket); WSACleanup(); return 1; } // 读取文件内容并发送给服务器 char buffer[1024]; while (!inputFile.eof()) { inputFile.read(buffer, sizeof(buffer)); int bytesRead = (int)inputFile.gcount(); send(clientSocket, buffer, bytesRead, 0); } inputFile.close(); std::cout << "File sent successfully." << std::endl; // 关闭套接字和清理资源 closesocket(clientSocket); WSACleanup(); return 0; system("PAUSE"); }
07-12
这段代码是一个简单的客户端程序,用于向服务器发送文件。它使用了Winsock库来进行网络通信。 首先,代码通过调用WSAStartup函数初始化Winsock库。然后,创建一个套接字,指定协议簇为AF_INET,类型为SOCK_STREAM,表示使用TCP协议。如果创建套接字失败,则输出错误信息,并清理资源。 接下来,设置服务器的地址信息,包括IP地址和端口号。这里的IP地址使用了一个示例值,你需要根据实际情况修改为服务器的IP地址。然后,通过调用connect函数与服务器建立连接。如果连接失败,则输出错误信息,并关闭套接字,清理资源。 如果连接成功,则输出提示信息,并发送文件名到服务器。然后,打开本地文件进行读取,并将文件内容发送给服务器。代码使用一个缓冲区来读取文件内容,并使用send函数发送数据。 最后,关闭套接字,并调用WSACleanup函数来清理Winsock库的资源。返回0表示程序执行成功。 注意:代码中的system("PAUSE")是一个Windows特有的函数,用于暂停程序运行,可以在控制台窗口中显示"Press any key to continue..."提示信息。但是建议将其移动到closesocket和WSACleanup之前执行,否则无法执行到这个位置。 你可以根据实际需求做一些修改,比如修改文件名、修改服务器地址等。还有一些错误处理和异常情况没有处理,你可以根据需要进行扩展。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值