Echo server: Difference between revisions

No edit summary
Line 198:
 
=={{header|Aime}}==
<lang aime></lang>void
readc(dispatch w, file i, file o, data b)
{
integer e;
data t;
 
while (1) {
e = f_b_read(i, t, 1 << 10);
if (e < 1) {
if (e == -1) {
w_resign(w, i);
}
 
break;
} else {
e = b_frame(t, '\n');
if (e != -1) {
e += 1;
b_rule(b, -1, t, 0, e);
f_data(o, b);
w_register(w, o);
b_bill(b, t, e, ~t - e);
} else {
b_add(b, t);
}
}
}
}
 
void
serve(dispatch w, file s)
{
file i, o;
data b;
 
accept(i, o, s, NONBLOCKING_INPUT | NONBLOCKING_OUTPUT);
w_watch(w, i, readc, w, i, o, b);
}
 
integer
main(void)
{
dispatch w;
file s;
 
tcpip_listen(s, 12321, 0);
w_watch(w, s, serve, w, s);
w_press(w);
 
return 0;
}</lang>
 
=={{header|AutoHotkey}}==
Anonymous user