HOSTENT *hst;
hst=gethostbyaddr((char *) &client_addr.sin_addr.s_addr,4,AF_INET);
printf("+%s [%s] new connect,client number is %d !\n",(hst)?hst->h_name:"",inet_ntoa(client_addr.sin_addr),client_ number);
cout<<"Start Chat"<<endl;
Chat(buff,client_socket);
break;
}
cout<<"Server Closed"<<endl;
closesocket( s );
WSACleanup();
system("pause");
return 0;
}
void Chat(char*buff,SOCKET soc)
{
int other=0;
char *text = "Socket connected";
send(soc,text,strlen(text),0);
memset(buff,0,sizeof(buff));
recv(soc,buff,strlen(buff),0);
SOCKET client_socket;
sockaddr_in client_addr;
int client_addr_size = sizeof(client_addr);
while(_stricmp((buff),"Exit")!=0)
{
cin>>buff;
other=send(soc,buff,strlen(buff),0);
if(GetAsyncKeyState(VK_F5))
other=recv(soc,buff,strlen(buff),0);
if(GetAsyncKeyState(VK_TAB))
system("cls");
if(_stricmp(buff,"AddClient")==0)
{
client_socket = accept(s,(sockaddr *)&client_addr,&client_addr_size);
if(client_socket == SOCKET_ERROR) {
printf("\n--------------SOCKET ERROR-----------\nYou must run more clients");}
client_number++;
HOSTENT *hst;
hst=gethostbyaddr((char *) &client_addr.sin_addr.s_addr,4,AF_INET);
printf("+%s [%s] new connect,client number is %d !\n",(hst)?hst->h_name:"",inet_ntoa(client_addr.sin_addr),client_ number);
char *text = "Socket connected";
send(soc,text,strlen(text),0);
memset(buff,0,sizeof(buff));
recv(soc,buff,strlen(buff),0);
}
}
cout<<"End Chat"<<endl;
send(soc,buff,strlen(buff),0);
}
Собственно если кто нибудь захочет со мной пообщатся то код изменять не надо
чтоб обмениватся данными по локальной сети нужно заменить
Цитата:
s_a.sin_addr.s_addr = inet_addr("192.168.1.3"");
на
Цитата:
s_a.sin_addr.s_addr = inet_addr("127.0.0.1");
В сервере это ип на котором он стоит а в клиенте это ип к которому он будет конектится
Скажу сразу взял код с примера но слегка его доработал
Запускаем сервер - Запускаем клиент
Чтоб добавить больше клиентов пушем в сервере AddClient - но пока что обменивается данными сервер только с 1 клиентом (пока хз как исправить)
пишем сообщение в сервере - заходим в клиент нажымаем ф6 и вот наше сообщение
нажимаем ф5 в клиенте-пишем -нажимаем ф5 в сервере -читаем
пишем в сервере Exit - выодим
нажымаем ф5 в клиенте - Exit - выходим + отправляется сообщение серверу
Вот и все
[Ссылки могут видеть только зарегистрированные пользователи. ],[Ссылки могут видеть только зарегистрированные пользователи. ]
[Ссылки могут видеть только зарегистрированные пользователи. ],[Ссылки могут видеть только зарегистрированные пользователи. ]
Скажу вам сразу если антивир ругается то ничего страшного там ничего нету код собственно перед вами
[Ссылки могут видеть только зарегистрированные пользователи. ]
[Ссылки могут видеть только зарегистрированные пользователи. ]
Удачи в изучении сокетов и с++
Не жмемся на спасибки и +
А он для соседа выложил, видишь что он 3й в сети? ) значит еще 1 человек есть ))))
без понятия что ты хочешь сказать но я выложыл там локальный ип и мой
Свой ип можно узнать Панель управления - Сети - клацаешь на свою (Укртелеком например) и там сведенья - Ip Pv4 это есть твой ип