Перейти к содержанию

С/С++ Вопросы и ответы ()


Рекомендуемые сообщения

вот си задрал то с типами даных...

как сравнить две строки? делаю так:

char *test;

bool b;

cin >> test;

if(strcmp(test,"dead")) b = true;

компилится, но падает после ввода в test

Ссылка на комментарий

NAT

Причем тут типы? Память кто будет выделять?

Юзай лучше std::string и вообще STL, а то какаято каша выходит. Да удобнее/безопастнее/быстрее/лучше с ним.

Ссылка на комментарий

не не ну это конечно.

программа падает и полностью закрывается как только выполнение переходит на перегруженную функцию.и сама среда тоже закрывается.

Ссылка на комментарий

Нельзя копировать - это значит у него скрыт конструктор копирования и оператор присваивания, т.е. другой такойже создать нельзя, а значит передаватся в/из функции он может только по ссылке.

В данном случае это компилится не будет

ostream operator<<(ostream& out,t& a){...}

должно быть так

ostream& operator<<(ostream& out,t& a){...}

Ссылка на комментарий

Причем тут типы? Память кто будет выделять?

Юзай лучше std::string и вообще STL, а то какаято каша выходит. Да удобнее/безопастнее/быстрее/лучше с ним.

вот я грю тупые типы, зачем тогда char нужен? если можно юзать стринг?

ps;я новичок просто

Ссылка на комментарий
  • 2 недели спустя...

Беда текст не перегоняется, помогите плиз. код первый это сервер. второй код это клиент.

Между ними отправка сообщений через send и recv. не доходят собака.



#include
#pragma hdrstop

#include "Unit1.h"
#include
#include
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int s1,n;
AnsiString s;
WSADATA WsaData;
SOCKET socket1,socket2;
SOCKADDR_IN sin;
SOCKADDR_IN from;
TMyThread *Thr=new TMyThread(true);
char *buff;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{

WSAStartup(MAKEWORD(2,0),&WsaData);
if(WSAStartup(MAKEWORD(2,0),&WsaData) !=0) {
ShowMessage("ERROR"); }
socket1=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
if (socket1 ==INVALID_SOCKET) {
ShowMessage("Сокет не создан");}
sin.sin_family = AF_INET;
sin.sin_port = htons(8080);
sin.sin_addr.s_addr = INADDR_ANY;
bind( socket1, (LPSOCKADDR)&sin, sizeof(sin) );
listen( socket1, SOMAXCONN);
}
//---------------------------------------------------------------------------
__fastcall TMyThread::TMyThread(bool CreateSuspended)
: TThread(CreateSuspended)
{
}

void __fastcall TMyThread::Execute()
{
socket2=accept(socket1,0,0);
if (socket2==INVALID_SOCKET) {ShowMessage("clien dont connected");}
else
{ShowMessage ("Client Connected");
recv(socket1,buff,sizeof(buff),0)
;}
Synchronize(pb);
}

void __fastcall TForm1::Button3Click(TObject *Sender)
{
Thr->Priority = tpLower; // установить приоритет ниже нормального
Thr->Resume();
// запустить поток выполняться
}
//---------------------------------------------------------------------------
void __fastcall TMyThread::pb()
{
Form1->Memo1->Lines->Add(buff);
}
void __fastcall TForm1::Button2Click(TObject *Sender)
{
s=Form1->Edit1->Text;
buff=s.c_str();
send(socket2,buff,sizeof(buff),0);
Memo1->Lines->Add(s);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button4Click(TObject *Sender)
{
Thr->Suspend()
;}
//---------------------------------------------------------------------------

//---------------------------------------------------------------------------

а вот клиент



#include
#pragma hdrstop

#include "Unit1.h"
#include "Winsock2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
WSADATA WsaData;
SOCKADDR_IN anAddr;
SOCKET socket1,socket2;
TMyThread *Thr=new TMyThread(true);
char *buff;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
WSAStartup(MAKEWORD(2,0),&WsaData);
if(WSAStartup(MAKEWORD(2,0),&WsaData) !=0) {
ShowMessage("ERROR"); }
socket1=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
if (socket1 ==INVALID_SOCKET) {
ShowMessage("Сокет не создан");}
anAddr.sin_family = AF_INET;
anAddr.sin_port = htons(8080);
anAddr.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
socket1=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);

connect(socket1, (struct sockaddr *)&anAddr, sizeof(struct sockaddr));
}
//---------------------------------------------------------------------------
__fastcall TMyThread::TMyThread(bool CreateSuspended)
: TThread(CreateSuspended)
{
}
//---------------------------------------------------------------------------
void __fastcall TMyThread::Execute()
{
connect(socket1, (struct sockaddr *)&anAddr, sizeof(struct sockaddr));
if (socket1==INVALID_SOCKET) {ShowMessage("dont connect to server");}
else
{ShowMessage ("Connected to Server");
recv(socket1,buff,sizeof(buff),0);}
Synchronize(pb);
}

void __fastcall TMyThread::pb()
{
Form1->Memo1->Lines->Add(buff);
}

void __fastcall TForm1::Button3Click(TObject *Sender)
{
Thr->Priority = tpNormal;
Thr->Resume();
Thr->FreeOnTerminate = true;

}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{AnsiString s;
s=Form1->Edit1->Text;
buff=s.c_str();
send(socket2,(buff),sizeof(buff),0);
Memo1->Lines->Add(s);
}
//---------------------------------------------------------------------------

//---------------------------------------------------------------------------

Ссылка на комментарий

D3V3L0p3R, выведи что возвращает sizeof(buff), и еще проверь что возвращает recv. А вообще поточнее бы сказал как именно "не доходят".

Ссылка на комментарий
  • 6 месяцев спустя...

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...