клиент
#include <stdio.h>
#include <iostream>
#include <winsock2.h>
int main(){
WSADATA WsaData;
struct sockaddr_in peer;
int s;
int s1;
int rc;
char buf[1];
int err = WSAStartup (0x0101, &WsaData);
if (err == SOCKET_ERROR)
{
printf ("WSAStartup() failed: %ld\n", GetLastError ());
return 1;
}
peer.sin_family = AF_INET;
peer.sin_port = htons(7500);
peer.sin_addr.s_addr = inet_addr("127.0.0.1");
s = socket(AF_INET,SOCK_STREAM,0);
if (s<0){
perror("socket error");
exit(1);
}else
std::cout<<"Create sock: OK\n";
rc = connect(s,(struct sockaddr*)&peer, sizeof(peer));
if (rc){
perror("connect error");
exit(1);
}else
std::cout<<"Connected: OK\n";
rc= send(s1,"2",1,0);
if (rc<=0){
perror("send error");
exit(0);
}else
std::cout<<"Send: OK\n";
rc = recv(s1,buf,1,0);
if (rc<=0){
perror("read error");
exit(1);
}else
std::cout<<"Read: OK\n";
printf("%c\n",buf[0]);
std::cin.get();
return 0;
}
сервер
#include <stdio.h>
#include <iostream>
#include <winsock2.h>
int main(){
WSADATA WsaData;
struct sockaddr_in local;
int s;
int s1;
int rc;
char buf[1];
int err = WSAStartup (0x0101, &WsaData);
if (err == SOCKET_ERROR)
{
printf ("WSAStartup() failed: %ld\n", GetLastError ());
return 1;
}
local.sin_family = AF_INET;
local.sin_port = htons(7500);
local.sin_addr.s_addr = htonl(INADDR_ANY);
s = socket(AF_INET,SOCK_STREAM,0);
if (s<0){
perror("socket error");
exit(1);
}else
std::cout<<"Create sock: OK\n";
rc = bind(s,(struct sockaddr*)&local, sizeof(local));
if (rc<0){
perror("bind error");
exit(1);
}else
std::cout<<"Bind: OK\n";
rc = listen(s,5);
if(rc){
perror("listen error");
exit(1);
}else
std::cout<<"Listen: OK\n";
s1 = accept(s,NULL,NULL);
if (s1<0){
perror("accept error");
exit(1);
}else
std::cout<<"Accept: OK\n";
rc = recv(s1,buf,1,0);
if (rc<=0){
perror("read error");
exit(1);
}else
std::cout<<"Read: OK\n";
printf("%c\n",buf[0]);
rc= send(s1,"2",1,0);
if (rc<=0){
perror("send");
exit(0);
}else
std::cout<<"Send: OK\n";
std::cin.get();
return 0;
}