望远镜系统监控+软件升级
25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.
 
 
 

85 satır
1.9 KiB

  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_INET代表IPV4,SOCK_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. //~0(对0取反) 对于有符号来说是-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_INET代表IPV4,SOCK_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. //~0(对0取反) 对于有符号来说是-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); //绑定服务器ip,ip转换格式
  62. //
  63. if (INVALID_SOCKET == connect(fd, &addr, sizeof(addr)))
  64. {
  65. err("connect");
  66. return INVALID_SOCKET;
  67. }
  68. return fd;
  69. }