مشکل:اجرای برنامه ارسال پیام بین کلاینت و سرور

mhabat

Member
با سلام.
من 2 تا سورس نوشتم برای ارسال پیام بین سرور و کلاینت.
بدون هیچ مشکلی کامپایل میشه ولی کار نمی کنه برنامه!
server:
کد:
#include "stdafx.h"
#pragma comment(lib,"Ws2_32.lib")
#include <winsock2.h>
#include <ws2tcpip.h>
#include <sys/types.h> 
#include <sys/socket.h>
#include "iostream"
using namespace std;

int main() {
int sockfd, newsockfd, portno;
     socklen_t clilen;char buffer[256];int n;
     struct sockaddr_in serv_addr, cli_addr;
       sockfd =  socket(AF_INET, SOCK_STREAM, 0);
      if (sockfd < 0)   cout<<"error";
     
   memset(&serv_addr, 0, sizeof(serv_addr));  
  portno = atoi((const char *)20001);
  serv_addr.sin_family = AF_INET; 
  serv_addr.sin_addr.s_addr = INADDR_ANY;
  serv_addr.sin_port = htons(portno);
  if (bind(sockfd, (struct sockaddr *) &serv_addr,
              sizeof(serv_addr)) < 0)   cout<<"ERROR on binding"; cout<< (struct sockaddr *) &serv_addr;
    listen(sockfd,5);          
 clilen = sizeof(cli_addr);   
     newsockfd = accept(sockfd, 
                 (struct sockaddr *) &cli_addr, &clilen);
     if (newsockfd < 0)  cout<<"ERROR on accept";
      
  cout<<"IP:PORT"<<endl<<inet_ntoa(cli_addr.sin_addr)<<":"<<ntohs(cli_addr.sin_port);
  send(newsockfd, "Hello, world!\n", 13, 0);
   memset(buffer,0,256);
    n = recv(newsockfd,buffer,255,0);
     if (n < 0) cout<<"ERROR reading from socket";
  cout<<"Message Client: "<<buffer;
  
  shutdown (  newsockfd , 2 ) ;
  shutdown (   sockfd , 2 ) ;
closesocket ( newsockfd ) ;
closesocket ( sockfd ) ;
 return 0;
}
clint:
کد:
#include "stdafx.h"
#pragma comment(lib,"Ws2_32.lib")
#include <winsock2.h>
#include <ws2tcpip.h>
#include <sys/types.h> 
#include <sys/socket.h>
#include "iostream"
using namespace std;

int main() {
int sockfd, portno, n;
    struct sockaddr_in serv_addr;
    struct hostent *server;
    char buffer[256],a[1024],b[1024];
    portno = atoi((const char *)20001);
sockfd = socket(AF_INET, SOCK_STREAM, 0);
    if (sockfd < 0)  cout<<"Error";
 server = gethostbyname("192.168.1.2");
 memset((char *) &serv_addr, 0, sizeof(serv_addr));  
  serv_addr.sin_family = AF_INET;
    memcpy((char *)server->h_addr, 
         (char *)&serv_addr.sin_addr.s_addr,
         server->h_length);
    serv_addr.sin_port = htons(portno);
   if (connect(sockfd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0) 
        cout<<"ERROR connecting";
   cin>>a;
    n = send(sockfd, a, strlen(a),0);
    if (n < 0) 
         cout<<"ERROR writing to socket";
    n = recv(sockfd, b, strlen(b),0);
    if (n < 0) 
         cout<<"ERROR reading from socket";
 cout<<b;
 closesocket(sockfd);
 return 0;
 
}

ممنون
 

جدیدترین ارسال ها

بالا