|
Mr.Pihto ↓
|
 |
|
09 Ноябрь, 2009, 11:00:30
|
НЕ ХУЕТА!
ХУЕТА!
|
|
не выябывайся
Группа: Адекваты
Карма: 17
Сообщений: 1398 Сила слова: 1.22
|
Мб кто подскажет почему мои клиент сервер не обмениваются сообщениями и выключаются при запуске одного из них несмотря на cin.get() - Ожидание ввода
клиент
#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;
}
|
|
|
|
|
Записан
|
|
|
|
|
krasun ↓
|
 |
|
10 Ноябрь, 2009, 01:32:30 , спустя 2 часа 32 минуты
|
НЕ ХУЕТА!
ХУЕТА!
|
Группа: Джедаи
Группа: Джедаи Карма: 41
Сообщений: 1379 Сила слова: 2.97
|
попробуй два раза подряд, написать cin.get(),
|
|
|
|
|
Записан
|
|
|
|
|
phpdude ↓
|
 |
|
10 Ноябрь, 2009, 01:51:17 , спустя 18 минут 47 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
я - ЭМО
Группа: в ухо Карма: 345
Сообщений: д-о-х-у-я! Сила слова: 1.66
|
std::cin.get();
зы я не ззнаю с++ но мне кажется что это пиздеж какой то)
|
|
|
|
|
Записан
|
забанен. могу забанить других, пишите в личку BEER. Helping ugly people have sex since 1862.
|
|
|
|
Mr.Pihto ↓
|
 |
|
10 Ноябрь, 2009, 02:00:55 , спустя 9 минут 38 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
|
не выябывайся
Группа: Адекваты
Карма: 17
Сообщений: 1398 Сила слова: 1.22
|
phpdude, не. проверял. эта штука ждёт клавиши ентер.
попробуй два раза подряд, написать cin.get(),
не, не работает. но я кажись расковырял. позже надеюсь выложу эхо сервер с клиентом
|
|
|
|
|
Записан
|
|
|
|
|
phpdude ↓
|
 |
|
10 Ноябрь, 2009, 02:12:52 , спустя 11 минут 57 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
я - ЭМО
Группа: в ухо Карма: 345
Сообщений: д-о-х-у-я! Сила слова: 1.66
|
Mr.Pihto, ну ждать то ждет, а что дальше? :)
|
|
|
|
|
Записан
|
забанен. могу забанить других, пишите в личку BEER. Helping ugly people have sex since 1862.
|
|
|
|
Mr.Pihto ↓
|
 |
|
10 Ноябрь, 2009, 02:39:01 , спустя 26 минут 9 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
|
не выябывайся
Группа: Адекваты
Карма: 17
Сообщений: 1398 Сила слова: 1.22
|
ну вот оно у мну не ждало. а ведь доллжно было
|
|
|
|
|
Записан
|
|
|
|
|
phpdude ↓
|
 |
|
10 Ноябрь, 2009, 02:47:33 , спустя 8 минут 32 секунды
|
НЕ ХУЕТА!
ХУЕТА!
|
я - ЭМО
Группа: в ухо Карма: 345
Сообщений: д-о-х-у-я! Сила слова: 1.66
|
std::cin.get();
судя по логике тут ты пытаешься вызвать метод статического объекта ... ты тут ничего не забыл?
|
|
|
|
|
Записан
|
забанен. могу забанить других, пишите в личку BEER. Helping ugly people have sex since 1862.
|
|
|
|
krasun ↓
|
 |
|
10 Ноябрь, 2009, 03:10:14 , спустя 22 минуты 41 секунду
|
НЕ ХУЕТА!
ХУЕТА!
|
Группа: Джедаи
Группа: Джедаи Карма: 41
Сообщений: 1379 Сила слова: 2.97
|
phpdude, там все в порядке
Спустя 1 минуту 56 секунд добавил
phpdude, не. проверял. эта штука ждёт клавиши ентер.
на самом деле не только enter, что словить enter и нужно было два cin.get(), так как cin.get() ждет ввода символа одного, а enter - это \r\n, по этому я и посоветовал два cin.get(), так как первый схавает \r а второй \n. У меня была какая-то подобная проблема.
Спустя 4 минуты 17 секунд добавил Mr.Pihto, обязательно покажешь как решил проблему
|
|
|
|
|
Записан
|
|
|
|
|
Mr.Pihto ↓
|
 |
|
10 Ноябрь, 2009, 06:56:51 , спустя 15 часов 46 минут 37 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
|
не выябывайся
Группа: Адекваты
Карма: 17
Сообщений: 1398 Сила слова: 1.22
|
std::cin.get();
судя по логике тут ты пытаешься вызвать метод статического объекта ... ты тут ничего не забыл?
это пространства имен. я его пишу и перед cout, cin и тд. Можно вообще в начале написать using namespace std;
Mr.Pihto, обязательно покажешь как решил проблему
циклом.. все рабтало но после завершения одной итерации прорсто выключалось. а 2 cin.get() думаю помогли бы т.к 1 не ловил..
Ура товарищи!
клиент
#include <stdio.h>
#include <iostream>
#include <winsock2.h>
int main(){
WSADATA WsaData;
sockaddr_in peer;
int s;
int s1;
int rc;
int err = WSAStartup (0x0101, &WsaData);
if (err == SOCKET_ERROR)
{
printf ("WSAStartup() failed: %ld\n", GetLastError ());
return 1;
}
while(true){
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);
rc = connect(s,(sockaddr*)&peer, sizeof(peer));
char buf[100];
char buf2[100];
fgets(buf,100,stdin);
if(send(s,buf,100,0)!=0){
std::cout<<"->Server: "<<buf;
}
recv(s,buf2,100,0);
std::cout<<"Server: "<<buf2<<"\n";
closesocket(s);
}
return 0;
}
сервер
#include <stdio.h>
#include <iostream>
#include <winsock2.h>
int main(){
WSADATA WsaData;
struct sockaddr_in local;
int s;
int s1;
int rc;
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";
}
while(true){
s1 = accept(s,NULL,NULL);
char buf[100];
recv(s1,buf,100,0);
std::cout<<"Client: "<<buf;
send(s1,buf,100,0);
}
return 0;
}
Спустя 1 минуту 40 секунд добавил если качаете -качайте clnt-srvr. второе прикрепление кривое. я там поправлял..
|
|
|
« Последнее редактирование: 10 Ноябрь, 2009, 06:56:51 от Mr.Pihto »
|
Записан
|
|
|
|
|
Sinkler ↓
|
 |
|
10 Ноябрь, 2009, 10:34:10 , спустя
|
НЕ ХУЕТА!
ХУЕТА!
|
Похуй, пляшем!
Группа: Джедаи Карма: 73
Сообщений: 6811 Сила слова: 1.07
|
рульно, мне нравится
|
|
|
|
|
Записан
|
|
|
|
|
adw0rd ↓
|
 |
|
10 Ноябрь, 2009, 11:14:22 , спустя 40 минут 12 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
эдво
Группа: в ухо Карма: не нужна
Сообщений: 17634 Сила слова: 1.67
|
Mr.Pihto, стиль меня твой убивает...
if (s<0){
perror("socket error");
exit(1);
}else
std::cout<<"Create sock: OK\n";
Спустя 1 минуту 25 секунд добавил а оформление кода вообще пипец
|
|
|
|
|
Записан
|
|
|
|
|
krasun ↓
|
 |
|
10 Ноябрь, 2009, 12:10:20 , спустя 55 минут 58 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
Группа: Джедаи
Группа: Джедаи Карма: 41
Сообщений: 1379 Сила слова: 2.97
|
и сделай код хотя бы C#, пусть выделяется
|
|
|
|
|
Записан
|
|
|
|
|
Mr.Pihto ↓
|
 |
|
10 Ноябрь, 2009, 05:31:13 , спустя 5 часов 20 минут 53 секунды
|
НЕ ХУЕТА!
ХУЕТА!
|
|
не выябывайся
Группа: Адекваты
Карма: 17
Сообщений: 1398 Сила слова: 1.22
|
krasun, чет тег C# не работает
|
|
|
|
|
Записан
|
|
|
|
|
krasun ↓
|
 |
|
10 Ноябрь, 2009, 05:44:09 , спустя 12 минут 56 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
Группа: Джедаи
Группа: Джедаи Карма: 41
Сообщений: 1379 Сила слова: 2.97
|
у меня он тоже не работал, по этому я использовал java, я думаю, без разницы какой тег, главное, что бы подсветка была, а у языков все равно у всех синтаксис сишный
|
|
|
|
|
Записан
|
|
|
|
|
Mr.Pihto ↓
|
 |
|
14 Ноябрь, 2009, 05:15:54 , спустя 3 дня 23 часа 31 минуту 45 секунд
|
НЕ ХУЕТА!
ХУЕТА!
|
|
не выябывайся
Группа: Адекваты
Карма: 17
Сообщений: 1398 Сила слова: 1.22
|
сделал я знач многопоточный сервер, чтоб можно было не один клиент подключать, но при дисконекте любого клиента в окне сервера пишет такую срань И<0иr/PA тип того. мусор какойто
#include <stdio.h>
#include <iostream>
#include <winsock2.h>
DWORD WINAPI ThreadFunc(LPVOID s1)
{
SOCKET s2=((SOCKET *) s1)[0];
char buf[100];
recv(s2,buf,100,0);
std::cout<<"Client: "<<buf;
send(s2,buf,100,0);
closesocket(s2);
return 0;
}
int main(){
WSADATA WsaData;
struct sockaddr_in local;
int s;
int rc;
SOCKET s1;
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";
}
while(true){
s1 = accept(s,NULL,NULL);
DWORD thID;
CreateThread(NULL,NULL,ThreadFunc,&s1,NULL,&thID);
}
return 0;
}
|
|
|
|
« Последнее редактирование: 14 Ноябрь, 2009, 05:14:56 от Mr.Pihto »
|
Записан
|
|
|
|
|