Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.10.2010, 22:27   #1
Horus92
Форумчанин
 
Аватар для Horus92
 
Регистрация: 04.05.2009
Сообщений: 147
По умолчанию Реализация клиент сервер через delphi и java

Не знаю к какому форуму отнести эту тему так что оставлю в этом разделе.

Вот что я сделал по найденному в интернету коду клиент - сервер (Delphi - Java)

JAva
Код:
import java.io.*;

import java.net.*;

public class NetServerThread {

public static void main (String[] args) {

try {

ServerSocket serv = new ServerSocket (8071);

System.out.println ("initialized");

while (true) {

//ожидание клиента

Socket sock = serv.accept ();

System.out.println (

sock.getInetAddress ().getHostName () 

+ " connected");

/*создание отдельного потока для обмена

данными с соединившимся клиентом*/

ServerThread server = new ServerThread (sock);

server.start ();//запуск потока

}

} catch (IOException e) {

System.err.println (e);

}

}

}

class ServerThread extends Thread {

private PrintStream os;//передача

private BufferedReader is;//чтение

private InetAddress addr;//адрес клиента

public ServerThread (Socket s) throws IOException {

	os = new PrintStream (s.getOutputStream ());

is = new BufferedReader (

new InputStreamReader (

s.getInputStream ()));

addr = s.getInetAddress ();

}

public void run () {

int i = 0;

String str;

try {

while ((str = is.readLine ()) != null) {

System.out.println (addr.getHostName ()+str);
 String data;
 data="str";
os.write(data.getBytes());

}

} catch (IOException e) {

//если клиент не отвечает, соединение с ним разрывается

System.out.println ("Disconnect");

} finally {

disconnect ();//уничтожение потока

}

}

public void disconnect () {

try {

System.out.println (addr.getHostName () 

+ " disconnected");

os.close ();

is.close ();

} catch (IOException e) {

e.printStackTrace ();

} finally {

this.interrupt ();

}

}

}

Delphi

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
try
 IdTCPClient1.Connect;
except on E: Exception do
 ShowMessage(E.Message);
 end;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
IdTCPClient1.Disconnect;
end;

procedure TForm1.Button2Click(Sender: TObject);
var out,iner:string;
begin
IdTCPClient1.Socket.WriteLn(edit1.Text);

end;
IdTCPClient1.Socket.WriteLn работает нормально но как мне сделать чтоб с java посылать не массив байтов а строку потому что я нашел обратную посылку клиенту только
Цитата:
os.write(data.getBytes());
Но в delphi я так и не понял как можно принять массив байт через IdTCPClient и переделать его в строку

Последний раз редактировалось Horus92; 15.10.2010 в 22:35.
Horus92 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Реализация клиент - сервер(Delphi<->Java) Horus92 Работа с сетью в Delphi 0 14.10.2010 22:21
можно ли организовать Flesh клиент и delphi сервер, а соединить их через XML? van-krock JavaScript, Ajax 9 18.05.2010 10:37
Delphi 7, клиент-сервер, СУБД ПрограммеррР Помощь студентам 0 12.05.2010 19:36
Сервер и клиент Indy (delphi) Nice42ru Помощь студентам 0 09.12.2009 19:33