не работает клиент\сервер
#include <Winsock2.h>
#include <vcl.h>
#include <dos.h>
#include <stdio.h>
#include <iostream>
#pragma hdrstop
using namespace std;
#pragma argsused
int err=-1;
void main()
{
WSAData WSData;
WSAStartup(0x101,&WSData);
while(1)
{
sockaddr_in SA;
SA.sin_family=AF_INET;
SA.sin_port=htons(1234);
SA.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");
SOCKET sock_client= socket(AF_INET,SOCK_STREAM,0);
for (int i =0; i =err;)
{
err=connect(sock_client,(sockaddr*)&SA,sizeof(SA)); соединение с сервером:
cout<<err<<endl;
}
char buf[7];
scanf("%s",&buf);
send(sock_client,(char *)&buf,7,0);
closesocket(sock_client);
cout<<"end"<<endl;
};
}
а вот так работает:
int err=-1;
void main()
{ WSAData WSData;
WSAStartup(0x101,&WSData);
while(1)
{ sockaddr_in SA;
SA.sin_family=AF_INET;
SA.sin_port=htons(1234);
SA.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");
SOCKET sock_client= socket(AF_INET,SOCK_STREAM,0);
connect(sock_client,(sockaddr*)&SA,sizeof(SA));
char buf[7];
scanf("%s",&buf);
send(sock_client,(char *)&buf,7,0);
closesocket(sock_client);
cout<<"end"<<endl;
};
}
вот сервер к нему:
int main()
{ int err;
WSADATA ws;
if (FAILED (WSAStartup(0x101,&ws) ) )
{ err = WSAGetLastError();}; // Error...
cout<<"WSAStartup"<<endl;
if (err==1){cout<<"ok"<<"("<<err<<")"<<endl;}
else cout<<"Error..."<<"("<<err<<")"<<endl;
SOCKET s;
if (INVALID_SOCKET==(s=socket(AF_INET, SOCK_STREAM, 0) ) )
{ // Error...
err = WSAGetLastError();
};
cout<<"socket (S)"<<endl;
if (err==1)
{
cout<<"ok"<<"("<<err<<")"<<endl;
}
else cout<<"Error..."<<"("<<err<<")"<<endl;
sockaddr_in s_add;
s_add.sin_family = AF_INET;
s_add.sin_addr.S_un.S_addr = INADDR_ANY;;
s_add.sin_port = htons (1234);
bind(s,(sockaddr*)&s_add,sizeof(s_add));
listen(s,SOMAXCONN);
//****************************************************************************************
SOCKET NS;
SOCKADDR_IN from;
int fromlen=sizeof(from);
//s1 = accept(s,(struct sockaddr*)&from, &fromlen);
while ((NS = accept(s,(struct sockaddr*)&from, &fromlen))!=INVALID_SOCKET)
{
cout<<"-------------------->\n";
cout<<"Connected...\n";
printf("accepted connection from %s, port %d\n", inet_ntoa(from.sin_addr), htons(from.sin_port)) ;
char* a=new char[100];
recv(NS,a,7,0);
cout<<"Received: \"";
for (int i=0;i<7;i++) { cout<<a; }
cout<<"\"\n";
closesocket(NS);
cout<<"-------------------->\n";
};
closesocket(NS);
int n;
}
не использование тегов форматирования - это нарушение. приведите сообщение в нормальный вид.