Форум программистов, компьютерный форум CyberForum.ru

WinSock на одном компе работает, а на разных - нет - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Дан целочисленный массив размером N. Преобразовать массив, увеличив длину каждой серии на один элемент http://www.cyberforum.ru/cpp-beginners/thread674856.html
#include "stdafx.h" #include <iostream> using namespace std; int main() { int n; int k=0; int p=0; int l=0; int a;
C++ Работа с файлами: вывести сведения о всех книгах указанного издательства Воспользовавшись информацией из варианта №4, вывести сведения о всех книгах указанного издательства. http://www.cyberforum.ru/cpp-beginners/thread674845.html
C++ Найти значение выражения при заданных параметрах
написать программу с функцией
C++ Структуры: определить, сколько студентов имеют средний балл от 4 до 5
Воспользовавшись записью СТУДЕНТ из варианта №1, определите, сколько студентов имеют средний балл от 4 до 5.
C++ Задана матрица D(4,4). Определить максимальный среди положительных, минимальный среди отрицательных и поменять их местами http://www.cyberforum.ru/cpp-beginners/thread674841.html
Задана матрица D(4,4). Определить максимальный среди положительных, минимальный среди отрицательных и поменять их местами.
C++ Написать программу с циклом написать программу с циклом подробнее

Показать сообщение отдельно
lips
2 / 2 / 0
Регистрация: 03.01.2012
Сообщений: 283
19.10.2012, 10:44     WinSock на одном компе работает, а на разных - нет
писал по самоучителям и по подобным примерам... на одном компьютере если запустить клиент и сервер то сообщение передаётся, а на разных проблема =(

дописывал в клиентскую часть
C++
1
serv_addr.sin_addr.s_addr = inet_addr("192.168.0.3");
как написано на сайте, но всё зависает...
подскажите пожлст!
проект прикрепил

код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include <process.h>
#include "Unit1.h"
 
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
TLabel *lb1;
int bytes_read;
char buff[1024];
int error;
SOCKET sock,listener;
void ServerReadThread(void* pParams);
void ClientReadThread(void* pParams);
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
    lb1 = *&Label1;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)  //я сервер
{
    WSADATA wData;
    int socket_name_size;
    struct sockaddr_in addr;
    if(WSAStartup(MAKEWORD(1,1),&wData)!=0)
    {
            //вывести ошибку
    }
    //std::cout<<"socket initialized\n";
    listener=socket(AF_INET,SOCK_STREAM,NULL);  //create socket
    //std::cout<<"socket created\n";
    addr.sin_family=AF_INET;
    addr.sin_port=htons(3000);  //number port
    addr.sin_addr.s_addr=htonl(INADDR_ANY);
    socket_name_size=sizeof(addr);
    if(bind(listener,(struct sockaddr *)&addr,socket_name_size)<0)  //binding
    {
        //вывести ошибку
    }
    //std::cout<<"socket bind\n";
    listen(listener,1);
    _beginthread(ServerReadThread, 0, NULL);
    Button1->Enabled = false;
    Button2->Enabled = false;
    Button4->Enabled = false;
    Form1->Caption = "Server";
}
//---------------------------------------------------------------------------
void ServerReadThread(void* pParams)
{
    sock=accept(listener,NULL,NULL);
    if(sock<0)
    {
        error=WSAGetLastError(); //вывести ошибку
    }
    while(true)
    {
 
        bytes_read=recv(sock,buff,40,0);
        if(bytes_read<0)
        {
            break;
        }
        lb1->Caption = buff;
    }
}
 
void __fastcall TForm1::Button2Click(TObject *Sender)  //client
{
    WSADATA wData;
    struct sockaddr_in addr,serv_addr;
   //   SOCKET sock;
    if(WSAStartup(MAKEWORD(1,1),&wData)!=0)
    {
//error
    }
 
    sock=socket(AF_INET,SOCK_STREAM,0);
    if(sock==-1)
    {
    //error
    }
    addr.sin_family=AF_INET;
    addr.sin_port=htons(3000);
    addr.sin_addr.s_addr=htonl(INADDR_LOOPBACK);
    bind(sock,(struct sockaddr *)&addr,sizeof(addr));
    char HostName[1024];
    DWORD HostIP = 0;
    LPHOSTENT lphost;
    gethostname(HostName, 1024);
    lphost=gethostbyname(HostName);
    serv_addr.sin_family=AF_INET;
    memcpy((char*)&serv_addr.sin_addr,lphost->h_addr,lphost->h_length);
    serv_addr.sin_port=htons(3000);
    ////
   ///  serv_addr.sin_addr.s_addr = inet_addr("192.168.0.3");
    ////
    int error;
    if(connect(sock,(struct sockaddr *)&serv_addr,sizeof(serv_addr))<0)
    {
        //error
        error=WSAGetLastError();
    }
//  std::cout<<"connect success\n";
    Button1->Enabled = false;
    Button2->Enabled = false;
    Button3->Enabled = false;
    _beginthread(ClientReadThread, 0, NULL);
    Form1->Caption = "Client";
}
//---------------------------------------------------------------------------
 
 
void __fastcall TForm1::Button4Click(TObject *Sender)
{
    static char temp_text[100] = {"Hello! i am client!"};
    send(sock,temp_text,strlen(temp_text),0);
}
//---------------------------------------------------------------------------
 
 
void __fastcall TForm1::Button3Click(TObject *Sender)
{
    static char temp_text[100] = {"Hello! i am server!"};
    send(sock,temp_text,strlen(temp_text),0);
}
//---------------------------------------------------------------------------
void ClientReadThread(void* pParams)
{
    while(true)
    {
        recv(sock,buff,sizeof(buff),0);
        lb1->Caption = buff;
    }
}
Вложения
Тип файла: rar winsock.rar (82.5 Кб, 6 просмотров)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 18:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru