با سلام.
من 2 تا سورس نوشتم برای ارسال پیام بین سرور و کلاینت.
بدون هیچ مشکلی کامپایل میشه ولی کار نمی کنه برنامه!
server:
clint:
ممنون
من 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;
}
کد:
#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;
}
ممنون