當使用C語言進行最基本的socket編程時,你需要包含以下頭文件:
#include <stdio.h>#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <unistd.h>
接下來,你可以創建一個套接字并指定協議類型(如TCP或UDP):
int socket_desc;socket_desc = socket(AF_INET, SOCK_STREAM, 0);
if (socket_desc == -1) {
printf("無法創建套接字\n");
return 1;
}
然后,你需要設置服務器地址和端口:
struct sockaddr_in server_addr;server_addr.sin_family = AF_INET;
server_addr.sin_addr.s_addr = inet_addr("服務器IP地址");
server_addr.sin_port = htons(服務器端口號);
接下來,你可以嘗試連接到服務器:
if (connect(socket_desc, (struct sockaddr*)&server_addr, sizeof(server_addr)) < 0) {printf("連接失敗\n");
return 1;
} else {
printf("已連接到服務器\n");
}
一旦連接成功,你可以發送和接收數據:
char server_response[2000];recv(socket_desc, server_response, sizeof(server_response), 0);
printf("從服務器收到的響應:%s\n", server_response);
char client_message[2000] = "Hello Server!";
send(socket_desc, client_message, strlen(client_message), 0);
printf("消息已發送到服務器\n");
最后,別忘了關閉套接字:
close(socket_desc);
這只是最基本的socket編程示例,你可以根據需要進一步擴展和優化代碼。請注意,以上示例僅適用于TCP套接字編程。
如果要使用UDP協議,請將SOCK_STREAM更改為SOCK_DGRAM。