tsocket.c

来自「wm PNE 3.3 source code, running at more 」· C语言 代码 · 共 147 行

C
147
字号
/* $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 + =
减小字号Ctrl + -
显示快捷键?