Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C/C++ Сетевое программирование
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.04.2014, 23:18   #1
diha-o
Новичок
Джуниор
 
Регистрация: 13.05.2010
Сообщений: 1
По умолчанию Перенос с консоли на форму вызвал ряд ошибок / С++

Добрый день,такая беда,пишу курсовую и вроде все отлично,написал на с++,но в консоли,а теперь это все нужно перенести на форму,а я не знаю как правильно сделать.Пытался банально закинуть все в файл с формой,но ошибит,пытался еще подключить как-то к форме этот отдельный файл, все равно беда.
Вообщем вот код сервера,при выполнении все будет само собой вместо pritnf будет все выводиться в TextBox1.
Код:
// Server.cpp: главный файл проекта.
 
//#include "stdafx.h"
#undef UNICODE
#define WIN32_LEAN_AND_MEAN
 
#include <windows.h>
#include <winsock2.h>
#include <ws2tcpip.h>
#include <stdlib.h>
#include <stdio.h>
 
// Need to link with Ws2_32.lib
#pragma comment (lib, "Ws2_32.lib")
// #pragma comment (lib, "Mswsock.lib")
 
#define DEFAULT_BUFLEN 512
#define DEFAULT_PORT "8000"
 
 
//#include "stdafx.h"
#include "winsock2.h"
#include "conio.h"
#include "Tchar.h"
 
#define SERVER_PORT 12345
#define BUF_SIZE 4096  // block transfer size  
#define QUEUE_SIZE 10 
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    int     b, l, on = 1;
    char    recvbuf[10] = {};
    SOCKET  s, sa;
    struct  sockaddr_in channel;  // holds IP address 
    WORD    wVersionRequested;
    WSADATA wsaData;
    int     err;
    int     bytesRecv;
 
    //--- INITIALIZATION -----------------------------------
    wVersionRequested = MAKEWORD(1, 1);
    err = WSAStartup(wVersionRequested, &wsaData);
 
    if (err != 0) {
     // printf("WSAStartup error %ld", WSAGetLastError());
     textBox1->Text = "WSAStartup error %ld" + System::Convert::ToString(WSAGetLastError());
     WSACleanup();
     // return false;
    }
    //------------------------------------------------------
 
 
 
    //---- Build address structure to bind to socket.--------  
    memset(&channel, 0, sizeof(channel));// zerochannel 
    channel.sin_family = AF_INET;
    channel.sin_addr.s_addr = htonl(INADDR_ANY);
    channel.sin_port = htons(SERVER_PORT);
    //--------------------------------------------------------
 
 
    // ---- create SOCKET--------------------------------------
    s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
    if (s < 0) {
     // printf("", WSAGetLastError());
     textBox1->Text = "socket error %ld" + System::Convert::ToString(WSAGetLastError());
     WSACleanup();
     // return false;
    }
 
    setsockopt(s, SOL_SOCKET, SO_REUSEADDR, (char *)&on, sizeof(on));
    //---------------------------------------------------------
 
    //---- BIND socket ----------------------------------------
    b = bind(s, (struct sockaddr *) &channel, sizeof(channel));
    if (b < 0) {
     //printf("", WSAGetLastError());
     textBox1->Text = "bind error %ld" + System::Convert::ToString(WSAGetLastError());
     WSACleanup();
     // return false;
    }
    //----------------------------------------------------------
 
    //---- LISTEN socket ----------------------------------------
    l = listen(s, QUEUE_SIZE);                 // specify queue size 
    if (l < 0) {
     //printf("", WSAGetLastError());
     textBox1->Text = "listen error %ld" + System::Convert::ToString(WSAGetLastError());
     WSACleanup();
     // return false;
    }
    //-----------------------------------------------------------
 
    while (1) {
     //---- ACCEPT connection ------------------------------------
     sa = accept(s, 0, 0);                  // block for connection request  
     if (sa < 0) {
         //printf(" ", WSAGetLastError());
         textBox1->Text = "accept error %ld" + System::Convert::ToString(WSAGetLastError());
         WSACleanup();
         // return false;
     }
     else {
         //printf("");
         textBox1->Text = "connection accepted";
     }
     //------------------------------------------------------------
     // Socket is now set up and bound. Wait for connection and process it. 
 
     //---- RECV bytes --------------------------------------------
     bytesRecv = recv(sa, recvbuf, 10, 0);
     err = WSAGetLastError();// 10057 = A request to send or receive data was disallowed because the socket is not connected and (when sending on a datagram socket using a sendto call) 
     if (bytesRecv == 0 || bytesRecv == WSAECONNRESET) {
         //printf("");
         textBox1->Text = "Connection Closed.\n";
         WSACleanup();
     }
     //printf("  ", );
     textBox1->Text = "Bytes Recv: %s \n" + System::Convert::ToString(recvbuf);
     closesocket(sa);
     //-------------------------------------------------------------
    }
 
    closesocket(s);
    WSACleanup();
    getche();
    //return 0;
 
}

Последний раз редактировалось Stilet; 30.04.2014 в 08:04.
diha-o вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод ошибок на форму Kassiopea PHP 2 17.10.2013 14:24
перевести программку из консоли в форму larissia Помощь студентам 1 07.06.2012 19:14
Перенаправление потоков консоли в форму Radical_Edward Общие вопросы .NET 4 05.12.2010 12:43
Как при запуске fpc.exe из консоли посмотреть лог ошибок компиляции? Cookson Паскаль, Turbo Pascal, PascalABC.NET 2 05.10.2010 18:33
Из консоли в форму Незлобин Помощь студентам 5 15.05.2010 13:44