Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.03.21;
Скачать: CL | DM;

Вниз

как передать строку в сокет?   Найти похожие ветки 

 
Галинка   (2008-06-27 17:30) [0]

сокет вроде принимает по одному символу. Как потом попросить его  ждать следуюшего?

Спасибо. Желательно на жабе.


 
Rouse_ ©   (2008-06-27 17:36) [1]


> сокет вроде принимает по одному символу

Сокету до балды на символы, он принимает и отправляет данные блоками, кои ограничены размерами буфферов отправки/приема. А уж как ты их читаешь - это другое...

> Желательно на жабе.

Форум как-бы по Delphi...


 
Галинка   (2008-06-27 17:38) [2]

про размер нашла. Но не хочет он строку целиком. Вводит первый символ и останавливается ((


 
Rouse_ ©   (2008-06-27 17:48) [3]

Может код покажешь? А то мне с этой стороны монитора не видно :)


 
Галинка   (2008-06-27 17:54) [4]


private Socket clSock;

private BufferedReader in;
private DataOutputStream output;


private int connect(String host, int port)
{
 int result = -1;
 try
 {
  clSock = new Socket(InetAddress.getByName(host), port);
  in = new BufferedReader(new InputStreamReader(clSock.getInputStream()));
  output = new DataOutputStream(clSock.getOutputStream());
  lbStatus.setText("Client connection accepted from " + clSock.getInetAddress().toString());
  result = clSock.getPort();
 }
 catch (IOException e)
 {
  System.err.println(e.toString());
  System.exit(-1);
 }
 return result;
}

       private void sendRequest(String _request)
{
 try{
  output.flush();
  output.writeBytes(_request);
 }
 catch (IOException er)
 {
  System.err.println(er.toString());
  System.exit(-1);
 }
}


может ли это буть потому, что в программе есть только клиентский сокет?


 
Галинка   (2008-06-27 17:59) [5]

и вообще

SocketInputStream - это, тот что передает мне, а

SocketOutputStream - тот, что передает наружу?


 
Rouse_ ©   (2008-06-27 18:04) [6]


> SocketInputStream - это, тот что передает мне, а
>
> SocketOutputStream - тот, что передает наружу?

Эмм... вот у меня встречный вопрос, а почему ты спрашиваешь это на форуме о Delphi? :)) Если переводить, то Output это исходящий ;)
По сабжу: Ну сделай output.writeChars()... Я почем знаю как там в этой яве все делается :)


 
Галинка   (2008-06-27 18:28) [7]

Rouse_ ©   (27.06.08 18:04) [6]

ну во-первых, я думаю для всей клтен-серверной технологии In-/Out- должно быть как то похоже. Чтоб народ не путался.

А причину я нашла. Просто принимающая система слишком медленна похоже. Надо было sleep встраивать. Ну или wait.


 
Галинка   (2008-06-27 18:29) [8]

а вообще, является "хорошим тоном" программировать работу с сокетами в отдельном потоке? Тогда легче просто задержками, например, управлять.


 
Галинка   (2008-06-27 18:30) [9]

Ну и конечно спасибо тебе за ответы и за поддержку!!!


 
Сергей М. ©   (2008-06-29 18:49) [10]


> является "хорошим тоном" программировать работу с сокетами
> в отдельном потоке?


"Хорошим тоном" является полное понимание необходимости применения многопоточности в приложении вообще. Сокеты тут вообще ни причем.



Страницы: 1 вся ветка

Текущий архив: 2010.03.21;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.012 c
1-1243761846
Dr.Andrew
2009-05-31 13:24
2010.03.21
Как упростить конструкцию Smallint(Pointer(@apeaks[i, 0])^) ?


4-1228827942
Alex_C
2008-12-09 16:05
2010.03.21
Открытие COM-порта при использовании переходника USB-COM


15-1262207000
Kerk
2009-12-31 00:03
2010.03.21
Регэксп


15-1262175997
Ega23
2009-12-30 15:26
2010.03.21
С наступающим, товарищи!


2-1263888390
lewka
2010-01-19 11:06
2010.03.21
Взоимодействие программы Компас и Delphi