mirror of
https://github.com/riba2534/TCP-IP-NetworkNote.git
synced 2026-02-13 14:55:00 +08:00
完成到第三章3.4 P48
This commit is contained in:
19
ch03/endian_conv.c
Normal file
19
ch03/endian_conv.c
Normal file
@@ -0,0 +1,19 @@
|
||||
#include <stdio.h>
|
||||
#include <arpa/inet.h>
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
unsigned short host_port = 0x1234;
|
||||
unsigned short net_port;
|
||||
unsigned long host_addr = 0x12345678;
|
||||
unsigned long net_addr;
|
||||
|
||||
net_port = htons(host_port); //转换为网络字节序
|
||||
net_addr = htonl(host_addr);
|
||||
|
||||
printf("Host ordered port: %#x \n", host_port);
|
||||
printf("Network ordered port: %#x \n", net_port);
|
||||
printf("Host ordered address: %#lx \n", host_addr);
|
||||
printf("Network ordered address: %#lx \n", net_addr);
|
||||
|
||||
return 0;
|
||||
}
|
||||
20
ch03/inet_addr.c
Normal file
20
ch03/inet_addr.c
Normal file
@@ -0,0 +1,20 @@
|
||||
#include <stdio.h>
|
||||
#include <arpa/inet.h>
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
char *addr1 = "1.2.3.4";
|
||||
char *addr2 = "1.2.3.256";
|
||||
|
||||
unsigned long conv_addr = inet_addr(addr1);
|
||||
if (conv_addr == INADDR_NONE)
|
||||
printf("Error occured! \n");
|
||||
else
|
||||
printf("Network ordered integer addr: %#lx \n", conv_addr);
|
||||
|
||||
conv_addr = inet_addr(addr2);
|
||||
if (conv_addr == INADDR_NONE)
|
||||
printf("Error occured! \n");
|
||||
else
|
||||
printf("Network ordered integer addr: %#lx \n", conv_addr);
|
||||
return 0;
|
||||
}
|
||||
23
ch03/inet_aton.c
Normal file
23
ch03/inet_aton.c
Normal file
@@ -0,0 +1,23 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <arpa/inet.h>
|
||||
void error_handling(char *message);
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
char *addr = "127.232.124.79";
|
||||
struct sockaddr_in addr_inet;
|
||||
|
||||
if (!inet_aton(addr, &addr_inet.sin_addr))
|
||||
error_handling("Conversion error");
|
||||
else
|
||||
printf("Network ordered integer addr: %#x \n", addr_inet.sin_addr.s_addr);
|
||||
return 0;
|
||||
}
|
||||
|
||||
void error_handling(char *message)
|
||||
{
|
||||
fputs(message, stderr);
|
||||
fputc('\n', stderr);
|
||||
exit(1);
|
||||
}
|
||||
Reference in New Issue
Block a user