Поиск:

Ответ в темуСоздание новой темы Создание опроса
> сокеты 
:(
    Опции темы
klyxa
Дата 28.6.2007, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 13.8.2006

Репутация: нет
Всего: нет



Народ, помогите плиз. Почему никак не хочет у меня посредством сокетов приконектится к удалённому серверу?

Код

.386 
.model flat,stdcall
option casemap:none

include \masm32\include\kernel32.inc
include \masm32\include\iphlpapi.inc   
include \masm32\include\windows.inc
include \masm32\include\ws2_32.inc
             
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\iphlpapi.lib
includelib \masm32\lib\ws2_32.lib
    
.data
;=-=-=-=-=-=-=-=-=-=-=--=-=-
MAXSIZE equ 64
SIO_RCVALL equ  0x98000001 
;=-=-=-=-=-=-=-=-=-=-=--=-=-
buf    db MAXSIZE dup(0)
buf2  db MAXSIZE dup(0)
url db "213.180.204.8",0 ;ya.ru
;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-
;struct
wsadat  WSADATA <>
sin  sockaddr_in <>
.data?
;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-
;handles
s SOCKET  ?

.code
  start:
 ;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 ;initialize WinSock. ver 2.2(high)
invoke WSAStartup,202h, addr wsadat

 ;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 ;initialize socket             
invoke socket,AF_INET,SOCK_STREAM,0
     mov  s, eax      
 ;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 ;fill struct
       mov sin.sin_family,AF_INET      
       invoke inet_addr, addr url
       mov sin.sin_addr, eax
       mov sin.sin_port, 80

       invoke connect,s,addr sin,sizeof sin
       invoke closesocket,s    
       

       
       invoke ExitProcess,0

   end start
   

 
Мб юзать чтото по типу setsockopt? но скакими параметрами её собирать?помогите плиз
PM MAIL   Вверх
W4FhLF
Дата 28.6.2007, 18:38 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: 1
Всего: 121



Код

            invoke WSAStartup, 101h, addr wsa
            .if eax>0
                invoke MessageBox, hWnd, addr nosocket, addr capt, MB_OK+MB_ICONINFORMATION
                jmp endcheck
            .else
                invoke socket, AF_INET, SOCK_STREAM, 0
                .if eax!=0
                    mov hSocket,eax
                    invoke htons, 25
                    mov sin.sin_port, ax
                    mov sin.sin_family, AF_INET
                    invoke gethostbyname,offset smtp     ; в твоём случа строка smtp db "ya.ru",0
                    mov eax,[eax+12]                                        
                    mov eax,[eax]
                    mov eax,[eax]
                    mov sin.sin_addr, eax
                    invoke connect, hSocket, addr sin, sizeof sin
                    .if eax!=0
                        invoke MessageBox, hWnd, addr nocreate, addr capt, MB_OK+MB_ICONINFORMATION
                        jmp endcheck
                    .endif
                .else
                    invoke MessageBox, hWnd, addr nocreate, addr capt, MB_OK+MB_ICONINFORMATION
                    jmp endcheck
                .endif
            .endif


Выдрал код из программы, 100% рабочий. 


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
klyxa
Дата 28.6.2007, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 13.8.2006

Репутация: нет
Всего: нет



Код

   
.386 
.model flat,stdcall
option casemap:none

include \masm32\include\kernel32.inc
include \masm32\include\iphlpapi.inc   
include \masm32\include\windows.inc
include \masm32\include\ws2_32.inc
include \masm32\include\user32.inc
             
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\iphlpapi.lib
includelib \masm32\lib\ws2_32.lib
includelib \masm32\lib\user32.lib
    
.data
;=-=-=-=-=-=-=-=-=-=-=--=-=-
kyky db "error",0
nosocket db "no socket!",0
nocreate db "no create",0
url db "ya.ru",0
;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-
;struct
wsadat  WSADATA <>
sin  sockaddr_in <>
.data?
;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-
;handles
s SOCKET  ?

.code
  start:
            invoke WSAStartup, 101h, addr wsadat
            .if eax>0
                invoke MessageBox, 0, addr nosocket, addr kyky, MB_OK+MB_ICONINFORMATION
                jmp exit
            .else
                invoke socket, AF_INET, SOCK_STREAM, 0
                .if eax!=0
                    mov s,eax
                    invoke htons, 25
                    mov sin.sin_port, ax
                    mov sin.sin_family, AF_INET
                    invoke gethostbyname,offset url    
                    mov eax,[eax+12]                                        
                    mov eax,[eax]
                    mov eax,[eax]
                    mov sin.sin_addr, eax
                    invoke connect, s, addr sin, sizeof sin
                    .if eax!=0
                        invoke MessageBox, 0, addr nocreate, addr kyky, MB_OK+MB_ICONINFORMATION
                        jmp exit
                    .endif
                .else
                    invoke MessageBox, 0, addr nocreate, addr kyky, MB_OK+MB_ICONINFORMATION
                    jmp exit
                .endif
            .endif
       
   exit:    
       invoke ExitProcess,0

   end start
               


И на моменте connect вылезает "no connect". Если тебе не сложно,то проверь пожалуйста этот код у себя. Если пашет, то значит, что у меня с сеткой касяки
PM MAIL   Вверх
drZmeu
Дата 9.7.2007, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 183
Регистрация: 22.11.2006

Репутация: нет
Всего: 1



Ну давай посмотрим!
Код

.386 
.model flat,stdcall
option casemap:none
include \masm32\include\kernel32.inc
include \masm32\include\iphlpapi.inc   
include \masm32\include\windows.inc
include \masm32\include\ws2_32.inc
             
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\iphlpapi.lib
includelib \masm32\lib\ws2_32.lib
    
.data
;=-=-=-=-=-=-=-=-=-=-=--=-=-
MAXSIZE equ 64
SIO_RCVALL equ  0x98000001 
;=-=-=-=-=-=-=-=-=-=-=--=-=-
buf    db MAXSIZE dup(0)
buf2  db MAXSIZE dup(0)
url db "213.180.204.8",0 ;ya.ru
;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-
;struct
wsadat  WSADATA <>
sin  sockaddr_in <>
.data?
;=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-
;handles
s SOCKET  ?
.code
  start:
 ;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 ;initialize WinSock. ver 2.2(high)
invoke WSAStartup,202h, addr wsadat
 ;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 ;initialize socket             
invoke socket,AF_INET,SOCK_STREAM,0
     mov  s, eax      
 ;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 ;fill struct
       mov sin.sin_family,AF_INET      
       invoke inet_addr, addr url
       mov sin.sin_addr, eax
       mov sin.sin_port, 80
       invoke connect,s,addr sin,sizeof sin
       invoke closesocket,s    
       
       
       invoke ExitProcess,0
   end start
   


#1)Ты указал :  mov sin.sin_port, 80 !!! А ты попробуй так :  mov sin.sin_port, 5000h ; Если тебе нужен 80 порт! Может проблема в этом ?
#2)Ещё попробуй так: invoke connect,s,sin,10h !!!
Ну и вот тебе наработка чьято:
Это на FASM но я думаю разберёшся!
Код

format PE GUI 4.0
entry start
include 'win32a.inc'
section '.data' data readable writable
socetd dd ? 
wsa WSADATA ;
sin sockaddr_in ;
hinstance dd ?
smtp_server db '194.67.23.111',0
_class db 'kkkk',0

szEHLO db 'EHLO server',13,10,0
szAUTHLOGIN db 'AUTH LOGIN',13,10,0
szMAILFROM db 'MAIL FROM:<',0
szRCPTTO db 'RCPT TO:<',0
szEndScob db '>',13,10,0
szDATA db 'DATA',13,10,0
szSubject db 'Subject: ',0
szEnd db 13,10,'.',13,10,0
szQuit db 'QUIT',13,10,0
;---------------------------------------
buf_sz =100h
buf rb buf_sz
;---------------------------------------
section '.code' code readable executable
start:
invoke WSAStartup,101h,wsa
test eax,eax
jnz _exit 
invoke socket,AF_INET,SOCK_STREAM,0
mov [socetd],eax
;----------------
push smtp_server
call [inet_addr] 
;----------------
mov [sin.sin_family],AF_INET
mov [sin.sin_port],1900h
mov [sin.sin_addr],eax
;----------------
invoke connect,[socetd],sin,10h
inc eax
je _exit
call read_buf
;----------------------------------------
proc read_buf
invoke recv,[socetd],buf,buf_sz,esi

ret
endp
;----------------------------------------
proc _exit
invoke ExitProcess,0
endp
section '.idata' import readable writeable
library kernel32,'KERNEL32.DLL',\
USER32,'USER32.DLL',\
wsock32,'WSOCK32.DLL'
include 'api\kernel32.inc'
include 'api\user32.inc'
include 'api\wsock32.inc'

Удачи!
--------------------
[code=html]<table bgcolor='#0' width='69'><tr align='center' bgcolor='#0'><td><font size='6' face='cursive' color='#ffffff'><b>A</b></font></td></tr><tr align="center" bgcolor="#0">[/code]
PM MAIL   Вверх
klyxa
Дата 11.7.2007, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 110
Регистрация: 13.8.2006

Репутация: нет
Всего: нет



сори. забыл уже про топ сей. разрешил эту проблему несколько ранее,но всё равно спасибо за ответы. вот работающая,но немножко.. криво написанное клиент-серверное приложение. зато работает,да  и мб поможет кому)


Присоединённый файл ( Кол-во скачиваний: 43 )
Присоединённый файл  socket_client_server.beta.v1.0.rar 10,15 Kb
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для Windows/DOS"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для Windows/Dos | Следующая тема »


 




[ Время генерации скрипта: 0.0468 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.