Как использовать сокеты или другие методы связи в локальной сети в TCL?
>Как использовать сокеты или другие методы связи в локальной сети в TCL?Удивительно. А как ты так составил запрос в гугле, что не нашел в первой пятерке результатов документации и примеров?
>Удивительно. А как ты так составил запрос в гугле, что не нашел
>в первой пятерке результатов документации и примеров?Я ни одной документации вообще не могу найти на русском. Я язык вообще не знаю, но получил задание - нужно осваивать...
google + tcl по-русски
~~~
http:/docs/RUS/tcltk/tcl.html#socket%20%F3%E9...
>http:/docs/RUS/tcltk/tcl.html#socket СИНТАКСИССпасибо за ссылку!
>Спасибо за ссылку!Пожалуйста.
Это была "рыба", http://google.ru/search?q=%D0%B4%D0%B0... "удочка" была в первой строке. [Само]обучение не передаётся вербально или ссылками..
>>Удивительно. А как ты так составил запрос в гугле, что не нашел
>>в первой пятерке результатов документации и примеров?
>
>Я ни одной документации вообще не могу найти на русском. Я язык
>вообще не знаю, но получил задание - нужно осваивать...Плохо дело. Русские версии все старые и местами неполные. Английские надо читать
>Как использовать сокеты или другие методы связи в локальной сети в TCL?
>А вот если бы кто сказал теперь как по сети копировать файл, был бы оооочень благодарен.
С сокетами разобрался, сервер-клиент работает. Нашел пример как отправить файл, но как принять - не знаю...proc Cleanup {in out bytes {error {}}} {
global total
set total $bytes
close $in
сlose $out
if {[string length $error]!= 0} {
# error occurred during the copy
}
}#### Открыть файл на чтение
set in [open f:/diplom/test.txt]
#### Открыть сетевое соединение
set out [socket 127.0.0.1 9920]
#### Скопировать, по окончании копирования вызвать Cleanup
fcopy $in $out -command [list Cleanup $in $out]
#### Ожидать завершения копирования
vwait total
>А вот если бы кто сказал теперь как по сети копировать файл,
>был бы оооочень благодарен.
>С сокетами разобрался, сервер-клиент работает. Нашел пример как отправить файл, но как
>принять - не знаю...Мил человек, ну почитай наконец маны, а!
У команды socket есть аргумент -server:
socket -server command ?options? port
...
SERVER SOCKETS
If the -server option is specified then the new socket will be a server for the port given by port. Tcl will automatically accept connections
to the given port. For each connection Tcl will create a new channel that may be used to communicate with the client. Tcl then invokes command
with three additional arguments: the name of the new channel, the address, in network address notation, of the client’s host, and the client’s
port number.
>Мил человек, ну почитай наконец маны, а!
>У команды socket есть аргумент -server:
> socket -server command ?options? portДа, сообщения я понял как принять. А файл?
> Да, сообщения я понял как принять. А файл?Принимай пока сокет не закроется. man 3tcl fileevent, http://wiki.tcl.tk/880.
Всем здравствуйте!=) Вот такой вопрос по теме, как при сокетном соединении проследить(на стороне сервера) наличие подсоединения со стороны клиента.
Уже третий день ломаю голову, не могу найти.
.
.
.
set account [socket -server myproc $port] // так создаю серверный сокетproc myproc {sock addr port} {
fconfigure $sock -buffering line
.
.
.
ну т.д.Как сделать так что бы когда клиента долго нет сервер закрывал сокет???
Буду очень благодарен за любую помощь, хотя бы подсказку, куда копать?:)
>[оверквотинг удален]
> set account [socket -server myproc $port] // так создаю серверный
> сокет
> proc myproc {sock addr port} {
> fconfigure $sock -buffering line
> .
> .
> .
> ну т.д.
> Как сделать так что бы когда клиента долго нет сервер закрывал сокет???
> Буду очень благодарен за любую помощь, хотя бы подсказку, куда копать?:)Проблему решил, помогли глобальные переменные=)