亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 3589 | 回復(fù): 1
打印 上一主題 下一主題

socket通信問題求解 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2015-08-02 10:53 |只看該作者 |倒序瀏覽
虛擬機(jī)linux服務(wù)端與windows下客戶端連接不上, 虛擬機(jī)采用橋接模式

linux服務(wù)器
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<errno.h>
  4. #include<string.h>
  5. #include<sys/types.h>
  6. #include<sys/socket.h>
  7. #include<netinet/in.h>
  8. #include<sys/wait.h>

  9. #define BACKLOG 5

  10. int main(int arge,char *argv[])
  11. {
  12.     int sockfd,new_fd;
  13.     struct sockaddr_in my_addr;
  14.     struct sockaddr_in their_addr;
  15.     int sin_size;
  16.     int data[2];
  17.     int sum ;
  18.     if((sockfd = socket(AF_INET,SOCK_STREAM,0)) == -1)
  19.     {
  20.         perror("socket fail");
  21.         exit(1);
  22.     }
  23.    
  24.     my_addr.sin_family = AF_INET;
  25.     my_addr.sin_port = htons(12345);
  26.     my_addr.sin_addr.s_addr = htonl(INADDR_ANY);
  27.     bzero(&(my_addr.sin_zero),0);

  28.     if(bind(sockfd,(struct sockaddr *)&my_addr,sizeof(struct sockaddr)) == -1)
  29.     {
  30.         perror("bind fail");
  31.         exit(1);
  32.     }
  33.     if(listen(sockfd,BACKLOG) ==-1)
  34.     {
  35.         perror("listen fail");
  36.         exit(1);
  37.     }

  38.     while(1)
  39.     {
  40.         sin_size  = sizeof(struct sockaddr_in);
  41.         printf("hello\n");
  42.         if((new_fd = accept(sockfd,(struct sockaddr *)&their_addr,&sin_size)) == -1)
  43.         {
  44.             perror("accept fail");
  45.             continue;
  46.         }
  47.         printf("Server:got connection from %s\n",inet_ntoa(their_addr.sin_addr));
  48.         if(!fork())
  49.         {
  50.             while(1)
  51.             {
  52.                 if((recv(new_fd,data,sizeof(data),0)) == -1)
  53.                 {
  54.                     printf("recv fail");
  55.                     break;
  56.                 }
  57.                 sum = data[0] +data[1];
  58.                 send(new_fd,(const char*)(char*)&sum,sizeof(sum),0);

  59.             
  60.             }
  61.             close(new_fd);
  62.             exit(0);
  63.         }
  64.    
  65.    
  66.    
  67.     }
  68.     close(new_fd);
  69.     close(sockfd);

  70.     return 0;
  71. }
復(fù)制代碼
windows客戶端
  1. // Client.cpp : 定義控制臺應(yīng)用程序的入口點(diǎn)。
  2. //

  3. //#include "stdafx.h"
  4. #include <iostream>
  5. #include <winsock.h>
  6. #pragma comment(lib, "ws2_32.lib")

  7. using namespace std;

  8. int main(int argc, char* argv[])
  9. {
  10.         try
  11.         {
  12.                 //初始化套接字庫
  13.                 //WSAStartup
  14.                 WORD wVersion = MAKEWORD(2, 2);
  15.                 WSADATA wsaData;
  16.                 if (0 != ::WSAStartup(wVersion, &wsaData))
  17.                 {
  18.                         throw "WSAStartup fail!";
  19.                 }
  20.                 if (2 != HIBYTE(wsaData.wVersion) || 2 != LOBYTE(wsaData.wVersion))
  21.                 {
  22.                         throw "Verify version fail!";
  23.                 }

  24.                 //創(chuàng)建一個SOCKET
  25.                 //socket
  26.                 SOCKET sock = ::socket(AF_INET, SOCK_STREAM, 0);
  27.                 if (INVALID_SOCKET == sock)
  28.                 {
  29.                         throw "Create socket fail!";
  30.                 }

  31.                
  32.                 //SOCKADDR_IN
  33.                 SOCKADDR_IN serverAddr;
  34.                 serverAddr.sin_family = AF_INET;
  35.                 serverAddr.sin_port = htons(12345);
  36.                 serverAddr.sin_addr.S_un.S_addr = inet_addr("192.168.1.15");

  37.                 //連接服務(wù)器
  38.                 if (SOCKET_ERROR == ::connect(sock, (const sockaddr*)&serverAddr, sizeof(serverAddr)))
  39.                 {
  40.                         int iError = ::WSAGetLastError();
  41.                         cout << "connect fail!" << endl;
  42.                         //::Sleep(5000);
  43.                 }

  44.                 //Sleep(5000);
  45.                 //closesocket(sock);
  46.                 //return 0;
  47.                 while (1)
  48.                 {
  49.                         //發(fā)送數(shù)據(jù)
  50.                         int iSendData[2];
  51.                         cout << "Please input data:" << endl;
  52.                         cin >> iSendData[0] >> iSendData[1];
  53.                         ::send(sock, (const char*)&iSendData, sizeof(iSendData), 0);
  54.                         //::send(sock, "1111111", sizeof("1111111"), 0);
  55.                         //char szRecvBuf[100];
  56.                         //::recv(sock, (char*)szRecvBuf, sizeof(szRecvBuf), 0);
  57.                         //接收應(yīng)答
  58.                         int iSum = 0;
  59.                         ::recv(sock, (char*)&iSum, sizeof(iSum), 0);
  60.                         cout << iSum <<endl;
  61.                 //        cout << szRecvBuf << endl;
  62.                 }

  63.        
  64.                 ::closesocket(sock);
  65.        
  66.                 ::WSACleanup();
  67.         }
  68.         catch (char* pStr)
  69.         {
  70.                 cout << pStr << endl;
  71.                 return -1;
  72.         }
  73.         return 0;
  74. }
復(fù)制代碼
都能互相ping到但是一運(yùn)行就連接不上,怎么解決?有木有大神

論壇徽章:
1
IT運(yùn)維版塊每日發(fā)帖之星
日期:2015-09-15 06:20:00
2 [報告]
發(fā)表于 2015-09-12 04:19 |只看該作者
服務(wù)器端程序    第29行代碼   bzero(&(my_addr.sin_zero),0); ,把剛綁定的服務(wù)器ip、端口、協(xié)議信息清除掉了。你肯定是收不到信息的。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP