📄 tsocket.c
字号:
/* $Header: /usr/cvsroot/target/src/wrn/wm/demo/socktest/tsocket.c,v 1.1.1.1 2001/11/05 17:49:15 tneale Exp $ *//* * Copyright (C) 1999-2005 Wind River Systems, Inc. * All rights reserved. Provided under license only. * Distribution or other use of this software is only * permitted pursuant to the terms of a license agreement * from Wind River Systems (and is otherwise prohibited). * Refer to that license agreement for terms of use. *//**************************************************************************** * Copyright 1998 Integrated Systems, Inc. * All rights reserved. ****************************************************************************//* * $Log: tsocket.c,v $ * Revision 1.1.1.1 2001/11/05 17:49:15 tneale * Tornado shuffle * * Revision 1.2 2001/01/19 22:24:56 paul * Update copyright. * * Revision 1.1 2000/10/16 19:23:18 paul * Renamed from test_socket.c * * Revision 1.7 2000/03/17 00:14:49 meister * Update copyright message * * Revision 1.5 1999/05/12 19:04:48 paul * Fixed iteration limit for get-a-bunch-of-sockets test. * * Revision 1.4 1999/02/18 04:16:18 wes * Socket Merge: new code (socket tests). * * Revision 1.3.2.5 1999/01/06 21:43:18 paul * changed the magic return-a-socket value from 1 to 17, * to avoid confusing the select test * * Revision 1.3.2.4 1998/11/06 23:36:55 paul * rototill to support tcp * *//* [clearcase]modification history-------------------01a,19apr05,job update copyright notices*/#include "test.h"voidtest_socket(int flags){ int s, i, sock_array[128]; s = test(0, "socket invalid domain", socket(-1, SOCK_DGRAM, 0), -1, EPROTONOSUPPORT); close(s); s = test(0, "socket unspecified domain", socket(PF_UNSPEC, SOCK_DGRAM, 0), -1, EPROTONOSUPPORT); close(s); s = test(0, "socket invalid type", socket(PF_INET, 0, 0), -1, EPROTONOSUPPORT); close(s); s = test(0, "socket type/proto disagreement", socket(PF_INET, SOCK_DGRAM, IPPROTO_TCP), -1, EPROTONOSUPPORT); close(s); if (flags & TEST_UDP) { s = test(0, "socket(SOCK_DGRAM, 0)", socket(PF_INET, SOCK_DGRAM, 0), 17, 0); close(s); s = test(0, "socket(SOCK_DGRAM, IPPROTO_UDP)", socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP), 17, 0); close(s); } if (flags & TEST_TCP) { s = test(0, "socket(SOCK_STREAM, 0)", socket(PF_INET, SOCK_STREAM, 0), 17, 0); close(s); s = test(0, "socket(SOCK_STREAM, IPPROTO_TCP)", socket(PF_INET, SOCK_STREAM, IPPROTO_TCP), 17, 0); close(s); }#if 0 s = test(0, "socket(SOCK_RAW, 0)", socket(PF_INET, SOCK_RAW, 0), 17, 0); close(s); s = test(0, "socket(SOCK_RAW, IPPROTO_ICMP)", socket(PF_INET, SOCK_RAW, IPPROTO_ICMP), 17, 0); close(s);#endif for (i = 0; i < (sizeof(sock_array) / sizeof(sock_array[0])); ++i) { if ((s = socket(PF_INET, SOCK_DGRAM, 0)) == -1) break; sock_array[i] = s; } if (!quiet) printf("INFO: socket: got %d DGRAM sockets\n", i);#if !defined(TEST_BSD) && defined(INSTALL_BUG) && INSTALL_BUG{ extern void socktable_dump(void); if (verbose) socktable_dump();}#endif for (--i ; i >= 0; --i) close(sock_array[i]); { int opt, namelen; namelen=sizeof(opt); test(0, "getsockopt on closed socket", getsockopt(s, SOL_SOCKET, SO_REUSEADDR, (void *) &opt, &namelen), -1, EBADF); } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -