1
這是我的第一個linux socket程序。我正在使用服務器客戶端模型。我讀過教程並創建了服務器和客戶端。但是我的服務器端代碼有問題。cpp Linux socket編程錯誤,接受
我在accept line「無效轉換爲'int *'到'socklen_t * {aka unsigned int *}'」收到此錯誤消息。
我該如何解決這個問題?以下是服務器代碼。
#include <stdio.h>
#include <unistd.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <stdlib.h>
#include <string.h>
#include <netdb.h>
using namespace std;
#define MAX_SIZE 50
int main()
{
int sock_descriptor, conn_desc;
struct sockaddr_in serv_addr, client_addr;
char buff[MAX_SIZE];
sock_descriptor = socket(AF_INET, SOCK_STREAM, 0);
if(sock_descriptor < 0)
cout << "Failed creating socket" << endl;
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(1234);
if(bind(sock_descriptor, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0)
cout << "Failed to bind" << endl;
listen(sock_descriptor, 5);
cout << "Waiting for connection...\n" << endl;
int size = sizeof(client_addr);
conn_desc = accept(sock_descriptor, (struct sockaddr *)&client_addr, &size);
if(conn_desc == -1)
cout << "Failed accepting connection" << endl;
else
cout << "Connected" << endl;
if(read(conn_desc, buff, sizeof(buff)-1) > 0)
cout << "Received %s" << buff << endl;
else
cout << "Failed receiving" << endl;
close(conn_desc);
close(sock_descriptor);
return 0;
}
啊哈,即固定它的感謝! – user1601045