socket.h
上传用户:hepax88
上传日期:2007-01-03
资源大小:1101k
文件大小:3k
源码类别:

TCP/IP协议栈

开发平台:

Visual C++

  1. #ifndef _SOCKET_H
  2. #define _SOCKET_H
  3. #ifndef _GLOBAL_H
  4. #include "global.h"
  5. #endif
  6. #include <stdarg.h>
  7. #ifndef _MBUF_H
  8. #include "mbuf.h"
  9. #endif
  10. #ifndef _PROC_H
  11. #include "proc.h"
  12. #endif
  13. #ifndef _SOCKADDR_H
  14. #include "sockaddr.h"
  15. #endif
  16. /* Local IP wildcard address */
  17. #define INADDR_ANY 0x0L
  18. /* IP protocol numbers */
  19. /* now in internet.h */
  20. /* TCP port numbers */
  21. #define IPPORT_ECHO 7 /* Echo data port */
  22. #define IPPORT_DISCARD 9 /* Discard data port */
  23. #define IPPORT_FTPD 20 /* FTP Data port */
  24. #define IPPORT_FTP 21 /* FTP Control port */
  25. #define IPPORT_TELNET 23 /* Telnet port */
  26. #define IPPORT_SMTP 25 /* Mail port */
  27. #define IPPORT_MTP 57 /* Secondary telnet protocol */
  28. #define IPPORT_FINGER 79 /* Finger port */
  29. #define IPPORT_TTYLINK 87 /* Chat port */
  30. #define IPPORT_POP 109 /* pop2 port */
  31. #define IPPORT_NNTP 119 /* Netnews port */
  32. #define IPPORT_LOGIN 513 /* BSD rlogin port */
  33. #define IPPORT_TERM 5000 /* Serial interface server port */
  34. /* UDP port numbers */
  35. #define IPPORT_DOMAIN 53
  36. #define IPPORT_BOOTPS 67
  37. #define IPPORT_BOOTPC 68
  38. #define IPPORT_PHOTURIS 468 /* Photuris Key management */
  39. #define IPPORT_RIP 520
  40. #define IPPORT_REMOTE 1234 /* Pulled out of the air */
  41. #define IPPORT_BSR 5000 /* BSR X10 interface server port (UDP) */
  42. #define AF_INET 0
  43. #define AF_AX25 1
  44. #define AF_NETROM 2
  45. #define AF_LOCAL 3
  46. #define NAF 4
  47. #define SOCK_STREAM 0
  48. #define SOCK_DGRAM 1
  49. #define SOCK_RAW 2
  50. #define SOCK_SEQPACKET 3
  51. #undef EWOULDBLOCK
  52. #define EWOULDBLOCK 100
  53. #define ENOTCONN 101
  54. #define ESOCKTNOSUPPORT 102
  55. #define EAFNOSUPPORT 103
  56. #define EISCONN 104
  57. #define EOPNOTSUPP 105
  58. #define EALARM 106
  59. #define EABORT 107
  60. #undef EINTR
  61. #define EINTR 108
  62. #define ECONNREFUSED 109
  63. #define EMSGSIZE 110
  64. #define EADDRINUSE 111
  65. #define EMIN 100
  66. #define EMAX 112
  67. extern char *Sock_errlist[];
  68. /* In socket.c: */
  69. extern int Axi_sock; /* Socket listening to AX25 (there can be only one) */
  70. int accept(int s,struct sockaddr *peername,int *peernamelen);
  71. int bind(int s,struct sockaddr *name,int namelen);
  72. int close_s(int s);
  73. int connect(int s,struct sockaddr *peername,int peernamelen);
  74. char *eolseq(int s);
  75. void freesock(struct proc *pp);
  76. int getpeername(int s,struct sockaddr *peername,int *peernamelen);
  77. int getsockname(int s,struct sockaddr *name,int *namelen);
  78. int listen(int s,int backlog);
  79. int recv_mbuf(int s,struct mbuf **bpp,int flags,struct sockaddr *from,int *fromlen);
  80. int send_mbuf(int s,struct mbuf **bp,int flags,struct sockaddr *to,int tolen);
  81. int settos(int s,int tos);
  82. int shutdown(int s,int how);
  83. int socket(int af,int type,int protocol);
  84. void sockinit(void);
  85. int sockkick(int s);
  86. int socklen(int s,int rtx);
  87. struct proc *sockowner(int s,struct proc *newowner);
  88. int usesock(int s);
  89. int socketpair(int af,int type,int protocol,int sv[]);
  90. /* In sockuser.c: */
  91. void flushsocks(void);
  92. int recv(int s,void *buf,int len,int flags);
  93. int recvfrom(int s,void *buf,int len,int flags,struct sockaddr *from,int *fromlen);
  94. int send(int s,void *buf,int len,int flags);
  95. int sendto(int s,void *buf,int len,int flags,struct sockaddr *to,int tolen);
  96. /* In file sockutil.c: */
  97. char *psocket(void *p);
  98. char *sockerr(int s);
  99. char *sockstate(int s);
  100. /* In file tcpsock.c: */
  101. int start_tcp(uint16 port,char *name,void (*task)(),int stack);
  102. int stop_tcp(uint16 port);
  103. #endif /* _SOCKET_H */