serv.cpp
上传用户:sztlpcb
上传日期:2007-06-09
资源大小:741k
文件大小:3k
源码类别:

IP电话/视频会议

开发平台:

Visual C++

  1. #include <windows.h>
  2. #include <winsock.h> // winsock惠ノぇ夹繷
  3. #include <stdio.h>
  4. #include <conio.h>
  5. #include <process.h>
  6. #define bufsize 1024
  7. #define AddrA "234.2.3.4"
  8. #define AddrB "234.2.3.6"
  9. WSADATA wsadata;
  10. void sendmenu(void *tmp);
  11. int main(int argc,char* argv[])
  12. {
  13. int listen_sd,child_sd;
  14. int len;
  15. fd_set fdset;
  16. struct sockaddr_in src_addr,child_addr;
  17. src_addr.sin_family = AF_INET;
  18. src_addr.sin_port = 7689;          /* port number */
  19. src_addr.sin_addr.s_addr = INADDR_ANY;    /* address */
  20. WSAStartup(MAKEWORD(1,1),&wsadata);
  21. listen_sd = socket(PF_INET,SOCK_STREAM,0);
  22. bind(listen_sd,(struct sockaddr far *)&src_addr,sizeof(src_addr));
  23. listen(listen_sd,5);
  24. FD_ZERO(&fdset);
  25. FD_SET(listen_sd,&fdset);
  26. len=sizeof(child_addr);
  27. while(!kbhit())
  28. {
  29. select(FD_SETSIZE,&fdset,NULL,NULL,NULL);
  30. child_sd=accept(listen_sd,(struct sockaddr far *)&child_addr,&len);
  31. //create thread to send menu
  32. _beginthread(sendmenu,0,(void *) child_sd);
  33. //sendmenu(child_sd);
  34. Sleep(1000);
  35. //printf("send menun");
  36. }
  37. closesocket(listen_sd);
  38. WSACleanup();
  39. printf("press any key to continuen");
  40. _getch();
  41. _getch();
  42. return 0;
  43. }
  44. void sendmenu(void *tmp)
  45. {
  46. FILE *menufile;
  47. char buffer[bufsize]="";
  48. char choose;
  49. size_t bufRead  = 0;
  50. SOCKET cli_sock=(SOCKET) tmp;
  51. int recv_count=0;
  52. //fd_set cli_fd;
  53. //timeval time;
  54. menufile=fopen("menu.txt","rb");
  55. if ( menufile == NULL )
  56. {
  57. printf( "rCan't Access menufile ");
  58. }
  59. (void) fseek( menufile, 0, SEEK_SET );
  60. while(!feof(menufile))
  61. {
  62. bufRead = fread(buffer, sizeof(BYTE), bufsize,menufile); 
  63. printf("read %d from filen",bufRead);
  64. send(cli_sock,buffer,bufRead,0); //肚癳RTP