mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-05-28 00:02:28 +00:00
Make more fixes and improvements
This commit is contained in:
parent
01b25e267b
commit
1599b818d9
24 changed files with 858 additions and 538 deletions
|
@ -47,15 +47,16 @@ void PrintUsage(char **argv) {
|
|||
}
|
||||
|
||||
void UdpServer(void) {
|
||||
int ip;
|
||||
ssize_t rc;
|
||||
struct sockaddr_in addr2;
|
||||
uint32_t addrsize2 = sizeof(struct sockaddr_in);
|
||||
CHECK_NE(-1, (sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)));
|
||||
CHECK_NE(-1, bind(sock, &addr, addrsize));
|
||||
CHECK_NE(-1, getsockname(sock, &addr2, &addrsize2));
|
||||
kprintf("udp server %hhu.%hhu.%hhu.%hhu %hu%n", addr2.sin_addr.s_addr >> 24,
|
||||
addr2.sin_addr.s_addr >> 16, addr2.sin_addr.s_addr >> 8,
|
||||
addr2.sin_addr.s_addr, addr2.sin_port);
|
||||
ip = ntohl(addr2.sin_addr.s_addr);
|
||||
kprintf("udp server %hhu.%hhu.%hhu.%hhu %hu%n", ip >> 24, ip >> 16, ip >> 8,
|
||||
ip, ntohs(addr2.sin_port));
|
||||
for (;;) {
|
||||
CHECK_NE(-1,
|
||||
(rc = recvfrom(sock, buf, sizeof(buf), 0, &addr2, &addrsize2)));
|
||||
|
@ -73,23 +74,23 @@ void UdpClient(void) {
|
|||
}
|
||||
|
||||
void TcpServer(void) {
|
||||
int client;
|
||||
ssize_t rc;
|
||||
int ip, client;
|
||||
struct sockaddr_in addr2;
|
||||
uint32_t addrsize2 = sizeof(struct sockaddr_in);
|
||||
CHECK_NE(-1, (sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)));
|
||||
CHECK_NE(-1, bind(sock, &addr, addrsize));
|
||||
CHECK_NE(-1, listen(sock, 10));
|
||||
CHECK_NE(-1, getsockname(sock, &addr2, &addrsize2));
|
||||
kprintf("tcp server %hhu.%hhu.%hhu.%hhu %hu%n", addr2.sin_addr.s_addr >> 24,
|
||||
addr2.sin_addr.s_addr >> 16, addr2.sin_addr.s_addr >> 8,
|
||||
addr2.sin_addr.s_addr, addr2.sin_port);
|
||||
ip = ntohl(addr2.sin_addr.s_addr);
|
||||
kprintf("tcp server %hhu.%hhu.%hhu.%hhu %hu%n", ip >> 24, ip >> 16, ip >> 8,
|
||||
ip, ntohs(addr2.sin_port));
|
||||
for (;;) {
|
||||
addrsize2 = sizeof(struct sockaddr_in);
|
||||
CHECK_NE(-1, (client = accept(sock, &addr2, &addrsize2)));
|
||||
kprintf("got client %hhu.%hhu.%hhu.%hhu %hu%n", addr2.sin_addr.s_addr >> 24,
|
||||
addr2.sin_addr.s_addr >> 16, addr2.sin_addr.s_addr >> 8,
|
||||
addr2.sin_addr.s_addr, addr2.sin_port);
|
||||
ip = ntohl(addr2.sin_addr.s_addr);
|
||||
kprintf("got client %hhu.%hhu.%hhu.%hhu %hu%n", ip >> 24, ip >> 16, ip >> 8,
|
||||
ip, ntohs(addr2.sin_port));
|
||||
for (;;) {
|
||||
CHECK_NE(-1, (rc = read(client, buf, sizeof(buf))));
|
||||
if (!rc) break;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue