第五页 现在开始广播

by Brian Slesinsky

要想将“回音”改进为交谈服务器,你所要做的仅仅是把消息传向每个用户,而不是留下自己享用。我们可以通过$select返回所有接口,这些接口是由 new( )add( )传给$select的。这样我们就能找出需要发给信息的那些用户了。所以我们对程序做了以下改动:

$socket->recv($line,80);

if($line eq 摂?/FONT>) {

print $socket->fileno . ?/FONT>: disconnected\n?/FONT>;

$select->remove($socket);

$socket->close;

};

my $socket;

#broadcast to everyone.Close connections where send( ) fails.

for $socket($select->handles) {

next if($socket==$listen);

$socket->send($line) or do {

print $socket->fileno. ?/FONT>:disconnected\n?/FONT>;

$select->remove($socket);

$socket->close;

};

}

这是为进行交谈所编写的全部代码。

Page 1: How to Write a Chat Server
Page 2: Socket Programming the Easy Way
Page 3: We Don?/FONT>t Wait for Nobody
Page 4: The Echo Chamber
Page 5: Now Broadcasting
Page 6: Keeping Track of Where You Were
Page 7: What?/FONT>s Left?


Brian Slesinsky is a former HotWired engineer. He left the company to work full-time on his death ray.