0
typedef unsigned int uint16;
SOCKET s, new_socket;
uint16 port =18001;
void CreateSocket()
{
WSADATA wsa;
struct sockaddr_in server; // creating a socket address structure: structure contains ip address and port number
printf("Initializing Winsock\n");
if(WSAStartup(MAKEWORD(2,2), &wsa)!=0)
{
printf("Failed Error Code: %d", WSAGetLastError());
return -1;
}
printf("Initialised\n");
//CREATING a SOCKET
if ((s = socket(AF_INET, SOCK_STREAM, 0)) == -1)
{
printf("Could not Create Socket\n");
//return 0;
}
printf("Socket Created\n");
server.sin_addr.s_addr = inet_addr("192.168.0.1");
server.sin_family = AF_INET;
server.sin_port = htons(port);
//Binding between the socket and ip address
if(bind (s, (struct sockaddr *) &server, sizeof(server)) == SOCKET_ERROR)
{
printf("Bind failed with error code: %d", WSAGetLastError());
}
puts("Bind Done");
//Listen to incoming connections
listen(s, 3);
//Accepting the incoming connection
new_socket = accept(s, NULL, NULL);
if (new_socket == INVALID_SOCKET)
{
printf(L"accept failed with error: %ld\n", WSAGetLastError());
closesocket(new_socket);
WSACleanup();
return 1;
}
else
printf("Client connected.\n");
closesocket(s);如何檢查TCP層上的套接字是否處於活動狀態?
}
int main()
{
CreateSocket();
return 0;
}
這是用於TCP的。 我通過上面的IP地址和端口號從MASTER接收連接,所以我創建了一個帶有端口號和IP地址的套接字。但如何檢查插座是否處於活動狀態?如何檢查上面的套接字代碼是否有效(它沒有顯示任何錯誤)。我在MASTER端得到一個錯誤,說: CONNECT EVENT CHECK FAILED(WSAGetLastError()) 任何人都可以幫助我?
非常感謝您的回覆。我明白缺失的部分。但如果我正在接受來自客戶端的連接(主設備:我正在使用稱爲INCA的工具將連接命令發送到服務器)。那接受電話會是什麼? (因爲我沒有在客戶端上創建套接字) – user3169825
點擊上面的accept()並閱讀文檔。服務器軟件需要告訴套接字層,傳入連接將在其套接字上被接受。 – unwind
我在上面的程序中編輯並添加了accept,bind和listen代碼。然後,客戶端也無法連接。你可以幫我嗎 ?? – user3169825