#include int main(int argc, char **argv) { int port, sk, cl, n, ip; struct sockaddr myaddr, addr; char buf[64]; port = 3000; if(argc == 2) sscanf(argv[1], "%d", &port); sk = tcp_socket(0); myaddr.sin_port = port; tcp_bind(sk, &myaddr); tcp_listen(sk, 5); printf("Server start...\r"); for(;;) { cl = tcp_accept(sk, &addr); ip = addr.sin_addr; printf("%d.", (ip >> 24) & 0xff); printf("%d.", (ip >> 16) & 0xff); printf("%d.", (ip >> 8) & 0xff); printf("%d:", ip & 0xff); printf("%d\r", addr.sin_port); buf[0] = 0xff; buf[1] = 0xfd; buf[2] = 34; tcp_write(cl, buf, 3); n = tcp_read(cl, buf, 63); n = tcp_read(cl, buf, 63); while(n != -1) { tcp_write(cl, buf, n); n = tcp_read(cl, buf, 63); } tcp_free(cl); } }