Привет, Народ! В общем, вопрос следующий: написал простенький чат на асме... в локалке работает, но через инет - ни в какую! Сначала думал, что из-за того, что подключаюсь через дилап, но квип-то как-то тянет o_O.. Может быть кто-нибудь сталкивался с чем-то подобным? Напишите, плз..
Code (Text): .elseif uMsg == WM_INITDIALOG invoke MessageBeep,MB_ICONASTERISK ; Инициализация сокетных функций invoke WSAStartup,101h,addr wsadata invoke socket,AF_INET,SOCK_STREAM,0 mov sock,eax ; реакция на соединение, получение данных и закрытие сокета invoke WSAAsyncSelect,sock,hWin,WM_SOCKET,FD_ACCEPT+FD_READ+FD_CLOSE+FD_WRITE mov sin.sin_family,AF_INET ;порт = 10001 mov Port,10001 invoke htons,Port mov sin.sin_port,ax ; Адрес - любой для сервера mov sin.sin_addr,INADDR_ANY ; Связь адресов и порта с сервером invoke bind, sock,addr sin,sizeof sin invoke listen,sock,SOMAXCONN .elseif uMsg == WM_SOCKET mov eax,lParam ; Соединение .IF ax == FD_ACCEPT shr ax,16 .IF ax == NULL ; При соединении инициализируем сокет и отправляем клиенту строку invoke MessageBeep,MB_ICONHAND invoke accept,sock,0,0 mov client,eax invoke send,client,addr Hello2,sizeof Hello2,0 invoke SetDlgItemText,hWin,1009,addr NuVot invoke Sleep,10 .ENDIF ; Реакция на получение данных от клиента .ELSEIF ax == FD_READ ; обнулим буфер для получения lea edi,BufStr mov ecx,1000 xor eax,eax rep stosd mov eax,wParam mov client,eax ; Получим данные в BufStr invoke recv,client,addr BufStr,sizeof BufStr,0 ; При ошибке - получим еще раз .IF eax == SOCKET_ERROR invoke recv,client,addr BufStr,sizeof BufStr,0 .ENDIF ; отправим клиенту строку ;invoke send,client,addr Hello, sizeof Hello, 0 invoke GetDlgItemText,hWin,1001,addr temp,512 invoke lstrlen,addr temp lea ebx,temp add ebx,eax invoke lstrcat,ebx,addr BufStr invoke SetDlgItemText,hWin,1001,addr temp invoke Sleep,10 ; Реакция на разрыв соединения .ELSEIF ax == FD_CLOSE mov eax,wParam ; Закроем сокет invoke closesocket, eax invoke MessageBox,0,addr CloseSock,0,MB_ICONINFORMATION
FaNt0m Попробуй для начала пропинговать айпишник к которому коннектишься. Проблем по сути быть не должно с тср, если по локалке работает, то должно и через инет работать. Фаервол? Неправильно указанный айпи?
Да Не во все сети пускают... Мы, например, с банком соединиться не можем. Даже не пингуется. А с обычного телефона - нормально.