望远镜系统监控+软件升级
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

tcpSocket.c 1.9 KiB

1 year ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. #include"tcpSocket.h"
  2. bool init_Socket()
  3. {
  4. WSADATA wsadata; //wsadata
  5. if (0 != WSAStartup(MAKEWORD(2,2),&wsadata)) //WSA:windows socket ansyc windows첽׽;2.2汾
  6. {
  7. //0ʧ
  8. //printf("[error]WSAStartup failed code %d", WSAGetLastError());
  9. err("WSAStartup");
  10. return false;
  11. }
  12. return true;
  13. }
  14. bool close_Socket()
  15. {
  16. if (0 != WSACleanup())
  17. {
  18. err("WSACleanup");
  19. return false;
  20. }
  21. return true;
  22. }
  23. SOCKET create_serverSocket()
  24. {
  25. //1.һsocket,AF_INETIPV4SOCK_STREAMʽ׽
  26. SOCKET fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
  27. if (INVALID_SOCKET == fd)
  28. {
  29. err("socket");
  30. return INVALID_SOCKET; //ͷأȷͼ
  31. }
  32. //~00ȡ з˵-1޷˵ֵ
  33. //2.socket󶨱صipַͶ˿ں
  34. struct sockaddr_in addr; //ṹaddr
  35. addr.sin_family = AF_INET; //ЭIPV4
  36. addr.sin_port = htons(PORT); //ֽתֽ,˴洢С˴洢໥ת
  37. addr.sin_addr.S_un.S_addr = ADDR_ANY; //󶨱ip
  38. if (SOCKET_ERROR == bind(fd, (struct sockaddr*)&addr, sizeof(addr))) //(struct sockaddr*)ǿת
  39. {
  40. err("bind");
  41. return INVALID_SOCKET;
  42. }
  43. //3.ʼ
  44. listen(fd, 10);
  45. return fd;
  46. }
  47. SOCKET create_clientSocket(const char * ip)
  48. {
  49. //1.һsocket,AF_INETIPV4SOCK_STREAMʽ׽
  50. SOCKET fd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
  51. if (INVALID_SOCKET == fd)
  52. {
  53. err("socket");
  54. return INVALID_SOCKET; //ͷأȷͼ
  55. }
  56. //~00ȡ з˵-1޷˵ֵ
  57. //2.socket󶨷˵ipַͶ˿ں
  58. struct sockaddr_in addr; //ṹaddr
  59. addr.sin_family = AF_INET; //ЭIPV4
  60. addr.sin_port = htons(PORT); //ֽתֽ,˴洢С˴洢໥ת
  61. addr.sin_addr.S_un.S_addr = inet_addr(ip); //󶨷ipipתʽ
  62. //
  63. if (INVALID_SOCKET == connect(fd, &addr, sizeof(addr)))
  64. {
  65. err("connect");
  66. return INVALID_SOCKET;
  67. }
  68. return fd;
  69. }