//s1.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
int main(int argc, char** argv)
{
int server_fd, client_fd;
struct sockaddr_in server_addr;
struct sockaddr_in client_addr;
int client_addr_len = sizeof(client_addr);
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(8080);
server_addr.sin_addr.s_addr = htonl(INADDR_ANY);
//1.socket
server_fd = socket(AF_INET, SOCK_STREAM, 0);
if(-1 == server_fd)
{
printf("%s(%d):error.\n", __FILE__, __LINE__);
return -1;
}
//2.bind
if(bind(server_fd, (struct sockaddr *)&server_addr, sizeof(server_addr) == -1))
{
printf("%s(%d):error.\n", __FILE__, __LINE__);
return -1;
}
printf("%s(%d)\n", __FILE__, __LINE__);
//3.listen
if(listen(server_fd, 16) == -1)
{
printf("%s(%d):error.\n", __FILE__, __LINE__);
return -1;
}
printf("%s(%d)\n", __FILE__, __LINE__);
//4.accept
client_fd = accept(server_fd, (struct sockaddr *)&client_addr, &client_addr_len);
if(client_fd == -1)
{
printf("%s(%d):error.\n", __FILE__, __LINE__);
return -1;
}
printf("%s(%d):client port=%d\n", __FILE__, __LINE__, ntohs(client_addr.sin_port));
printf("%s(%d):client ip=%s\n", __FILE__, __LINE__, inet_ntoa(client_addr.sin_addr));
//5.reply
write(client_fd, "666666", 7);
close(client_fd);
close(server_fd);
return 0;
}
socket 实验源码
最新推荐文章于 2024-08-11 09:45:39 发布