forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Библиотеки (http://forum.boolean.name/forumdisplay.php?f=124)
-   -   Lib_socket (http://forum.boolean.name/showthread.php?t=2525)

Piligrim 29.11.2006 10:31

Re: Библиотеки
 
Вложений: 2
Пробуйте.

IVenoMI 29.11.2006 11:35

Re: Библиотеки
 
Возник вопрос такого плана:

1. При открытии сокета обмен данніми в асинхронном режиме?..

2. Немного не понял, как записывать данные в сокет для отправки... Через ИнпутСтрим?..

Piligrim 30.11.2006 21:59

Re: Библиотеки
 
1. есть ли что на приеме можно запросить, а отправка в любой момент.
2. пишет побайтно. если надо строку, могу сделать

Piligrim 08.12.2006 00:18

Re: Библиотеки
 
program Menu;
uses socket;
var
s: string;
b : integer;
begin
if socket.open('socket://mrim.mail.ru:2042')<>0 then
Debug('Error');
while socket.available=0 do begin
delay(100);
end;
b := 33;
while (socket.available<>0) or (b>32) do begin
b := socket.read;
s := s + chr(b);
end;
DrawText(s, 0, 0);
repaint;
delay(5000);
end.

IVenoMI 25.12.2006 03:28

Re: Библиотеки
 
pilgrim, уважаемый, а библиотека работает по протоколу UDP или TCP/IP ?

Бибилиотека использует протокол tcp. (Piligrim)

aleshka 25.12.2006 16:03

Re: Библиотеки
 
Цитата:

Сообщение от pilgrim
program Menu;
uses socket;

Кстати такой вопрос. В эмуляторе все работает замечательно, все принимается и отправляется без проблем. Но тот же апплет в телефоне работать отказывается. Стартует, но при подключении, вот здесь
socket.open('socket://...') выдает код ошибки -1. При этом сам телефон даже не выдает запрос на разрешение доступа к сети передачи данных. Что это может быть? Телефон настроен как надо, и все остальные Интернет-приложения работают :)

IVenoMI 21.06.2007 13:29

Re: Lib_socket
 
А можно таки реализовать поддержку отправки строки в вышеуказанной библиотеке?..

aleshka 25.07.2007 09:57

Re: Lib_socket
 
Вложений: 2
C отправкой строк и количеством принятой/отправленой инфы.

Kurdt 25.07.2007 15:04

Re: Lib_socket
 
Вложений: 2
чтото не хочет отправлять почту через сокет смтп, можете глянуть что не так.. ?

aleshka 26.07.2007 10:30

Re: Lib_socket
 
Вложений: 2
ну еще бы хотел ))))))
во первых: где символ перевода каретки? и что за \r\n? меняем везде
SendState:= Socket.WriteStr('HELO there\r\n');
на
SendState:= Socket.WriteStr('helo there' + chr(10));

во вторых: где чтение и анализ ответа сервера или хотя бы простые задержки между командами? добавляем где надо
Delay(2000);
while Socket.Available > 0 do RecvString:= RecvString + Chr(Socket.Read);

ну и в третьих и четвертых: на сервере может быть авторизация. и у тебя на внешнем шлюзе может быть закрыт 25 порт во избежание.
вобщем лови пример, код конечно ужасный, но у меня в локалке с локальным почтовиком все работает.

ViNT 09.08.2007 22:51

Re: Lib_socket
 
А можно с помощъю этой либы подключаться к серверу по IP-адресу не в локальной сети, а в интернет?

Piligrim 10.08.2007 11:55

Re: Lib_socket
 
Конечно можно. Не совсем понимаю о чем идет речь. чем IP адрес локальной сети отличается от интернет?

ViNT 10.08.2007 14:21

Re: Lib_socket
 
Я просто не правильно выразился.
Суть состоит в том, чтобы подключиться к удаленной машине на определенный порт. На компе запущена программа, которая прослушивает этот порт(сокет в асинхронном режиме).
Мидлет должен подключиться к компу, передать ему данные и закрыть соединение.

Код:


program Therminal;
uses socket;
var
s: string;
b:integer;
begin

if socket.open('socket://10.100.2.202:1030')<>0 then
Debug('Error');
//зависает здесь, даже если убрать цикл
while socket.available=0 do begin
delay(100);
end;

delay(1000);

b:=socket.write(80);
drawtext('sent',10,15);
socket.close;
drawtext('closed',0,30);
delay(10000);
end.

На эмуляторе все работает, а на мобиле(Moto c650) заклинивает.

Хотя судя по логу MIDWay ошибок нет:
Код:

AMS: VM_APPLICATION_STATE_CHANGED, 0
->AMS_VM_SynchronizeStates(): desired state=272281572, stable=0
<-AMS_VM_SynchronizeStates(): desired state=272281572, stable=0
AMS: VM_APPLICATION_STATE_CHANGED, 10
->AMS_VM_SynchronizeStates(): desired state=272281572, stable=0
<-AMS_VM_SynchronizeStates(): desired state=272281572, stable=0
AMS: VM_APPLICATION_STATE_CHANGED, 20
->AMS_VM_SynchronizeStates(): desired state=272281572, stable=0
<-AMS_VM_SynchronizeStates(): desired state=272281572, stable=1
KJAVA Key Event: 22; 0
[Socket] open0()
[ProxyMan] NET_ParseResource no protocol specified
[ProxyMan] NET_ParseResource host:10.100.2.202
[ProxyMan] NET_ParseResource port:1030
[Socket] NET_CreateTcpProxy(resource:0x3fdbbe0, nextProtocol:0)
KJAVA Key Event: 22; 1
[ProxyMan] NET_ProcessProxyMsg(suapiType:0x821b1, msgHandler:0)
[Socket] NET_TcpNetworkEvent(ind=532913, msg=1205679c, index=0)
[Socket] NET_TcpNetworkEvent proxy create success proxyId=1
[Socket] net_SetProxyAttributes(index:0, setLinkAttributes:1 )
[DnsIp] NET_GetStaticDnsIp DNS_IP:202.056.231.117
[Profile] NET_GetProfileInfo(profileIndex:0, profile:12067986)
[Socket] net_SetProxyAttributes - line=0 csd_number= apn=internet.mts.ru user=mts pwd=mts
[ProxyMan] NET_ProcessProxyMsg(suapiType:0x821b4, msgHandler:0)
[Socket] NET_TcpNetworkEvent(ind=532916, msg=12056964, index=0)
[Socket] NET_TcpNetworkEvent proxy set attribute success proxyId=1

//Зависает здесь
//Далее нажимаю "отбой"

VB: inside JkDeviceStopVibration()
->AMS_VM_ChangeDesiredState(): 272281780
->AMS_VM_SynchronizeStates(): desired state=272281572, stable=0
<-AMS_VM_SynchronizeStates(): desired state=272281572, stable=0
VB: inside JkDeviceStopVibration()
VB: JkDeviceStopBacklightFlash()
AMS: VM_APPLICATION_STATE_CHANGED, 21
VB: VMproxyResetBacklight()
VB: JkDeviceStopBacklightFlash()
->AMS_VM_SynchronizeStates(): desired state=272281572, stable=0
<-AMS_VM_SynchronizeStates(): desired state=272281572, stable=0
AMS: VM_APPLICATION_STATE_CHANGED, 1
->AMS_VM_SynchronizeStates(): desired state=272281572, stable=0
<-AMS_VM_SynchronizeStates(): desired state=272281572, stable=1
->AMS_VM_ChangeDesiredState(): 272281780
->AMS_VM_SynchronizeStates(): desired state=272281572, stable=0
<-AMS_VM_SynchronizeStates(): desired state=272281572, stable=0
AMS: VM_APPLICATION_STATE_CHANGED, 2
AMS: VM_APPLICATION_STATE_CHANGED, 23
VB: inside JkDeviceStopVibration()
AMS: VM_APPLICATION_STATE_CHANGED, 3
VB: JkDeviceStopBacklightFlash()
AMS: AMS_VM_START_RETURNED, 1
->AMS_VM_SynchronizeStates(): desired state=272281572, stable=0
<-AMS_VM_SynchronizeStates(): desired state=272281572, stable=1
[Socket] NET_ResetTcpSockets()
[ProxyMan] NET_DeallocateEntry destroy proxy profile_index:0
->AMS_VM_SynchronizeStates(): desired state=272281572, stable=1
<-AMS_VM_SynchronizeStates(): desired state=272281572, stable=1
[JkHttp] NET_HttpInteractionEvent(index:0, indication:5, data:0)
[JkHttp] NET_HttpInteractionEvent state:0
[JkHttp] NET_HttpInteractionEvent FREE_TABLE_EVENT
VB: JkDeviceStopBacklightFlash()
->AMS_VM_SynchronizeStates(): desired state=272281572, stable=1
<-AMS_VM_SynchronizeStates(): desired state=272281572, stable=1
AMS: AMS_SUITE_DATA_SIZE, 5439
AMS: MSM_ST_WRREC
DATAFLOW: 1
AMS: AMS_HEAP_RELEASED_TR


Piligrim 10.08.2007 17:38

Re: Lib_socket
 
судя по логу, собственно соединение устанавливается, но ничего не прилетает. Может сервер буферирует отправку?

ViNT 10.08.2007 18:38

Re: Lib_socket
 
Цитата:

Сообщение от pilgrim
судя по логу, собственно соединение устанавливается, но ничего не прилетает. Может сервер буферирует отправку?

Может, только как с этим бороться?


Часовой пояс GMT +4, время: 21:21.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot