关键字:
TCPSocket TCPServer
这个例子是这样的:客户端连上服务器后,服务器向客户端的终端显示服务器的时间,然后将来自客户端的网络连接养关闭。
my_tcp_server.rb
require 'socket' # Get sockets from stdlib
server = TCPServer.open(2000) # Socket to listen on port 2000
loop { # Servers run forever
client = server.accept # Wait for a client to connect
client.puts(Time.now.ctime) # Send the time to the client
client.puts "Closing the connection. Bye!"
#client.write("dd")
client.close # Disconnect from the client
}
server.accept这个方法会一直挂着,直到有客户端连上来为止。
my_tcp_client.rb
require 'socket' # Sockets are in standard library
hostname = 'localhost'
port = 2000
s = TCPSocket.open(hostname, port)
while line = s.gets # Read lines from the socket
puts line.chop # And print with platform line terminator
end
#streamSock.send( "Hello\n" )
#str = streamSock.recv( 100 )
#print str
s.close # Close the socket when done
然而大多数的服务器是支持多个客户端的连接的,在Ruby中可以用线程来很容易地做到这一点。
我将以上的my_tcp_server.rb中的服务器代码修改一下:
require 'socket' # Get sockets from stdlib
server = TCPServer.open(2000) # Socket to listen on port 2000
loop { # Servers run forever
Thread.start(server.accept) do |client|
client.puts(Time.now.ctime) # Send the time to the client
client.puts "Closing the connection. Bye!"
client.close # Disconnect from the client
end
}
这样的话,每有一个客户端连接上来,就会在服务器端启动一个线程来处理请求。
分享到:
相关推荐
本书详细介绍了Ruby 1.8和1.9版本各方面的内容。... 本书还包含对Ruby平台上丰富的API的详尽介绍,并用带有详尽注释的代码演示了Ruby进行文本处理、数字运算、集合、输入/输出、网络开发和并发编程的功能。
本书还包含对Ruby平台上丰富的API的详尽介绍,并用带有详尽注释的代码演示了Ruby进行文本处理、数字运算、集合、输入/输出、网络开发和并发编程的功能。 前言1 第1章导言1 1.1漫游RUBY2 1.2体验RUBY11 ...
虽然定位为入门手册,但是依然涉及许多高级技术和应用,覆盖到的应用领域包括系统管理、网络编程、图形处理、图形界面开发以及web开发等开发热门领域。希望借助于平易的讲解,让读者在学习的过程中,理解Ruby的编程...
从文件操作、Web开发、网络编程到脚本自动化,Ruby都展现了其强大的功能和灵活性。通过学习和掌握这些案例中的技巧和方法,读者可以更好地应用Ruby进行实际项目开发,提高编程效率和质量。希望本文能对读者在Ruby...
Ruby是一种强大而优雅的编程语言,以其简洁的语法、动态性、面向对象编程和...Ruby拥有丰富的标准库和第三方库,这些库提供了大量的类和方法,涵盖了文件操作、网络编程、字符串处理、正则表达式等常见任务的解决方案
虽然定位为入门手册,但是依然涉及许多高级技术和应用,覆盖到的应用领域包括系统管理、网络编程、图形处理、图形界面开发以及web开发等开发热门领域。希望借助于平易的讲解,让读者在学习的过程中,理解Ruby的编程...
虽然定位为入门手册,但是依然涉及许多高级技术和应用,覆盖到的应用领域包括系统管理、网络编程、图形处理、图形界面开发以及web开发等开发热门领域。希望借助于平易的讲解,让读者在学习的过程中,理解Ruby的编程...
主要介绍了Ruby中的Socket编程简单入门,是Ruby网络编程学习中的基础知识,需要的朋友可以参考下
超值光盘内容:《Ruby完全自学手册》源代码+《Ruby完全自学手册》视频演示+《Ruby完全自学手册》电子教案(PPT),1200余页编程技术文档(免费赠送)+45个编程专题视频讲座(免费赠送)。 系统介绍Ruby的语法、基本...
ruby on rails 网络编程书籍,PDF中文版。
接下来就让我们来学习如何进行 Ruby Socket 编程 什么是 Sockets 应用层通过传输层进行数据通信时,TCP和UDP会遇到同时为多个应用程序进程提供并发服务的问题。多个TCP连接或多个应用程序进程可能需要 通过同
Ruby(中文名:红宝石)是一种简洁、灵活且富有表达力的编程语言,由日本程序员松本行弘(Matz)...6. **丰富的标准库**:Ruby 标准库提供了大量内置模块和库,涵盖了网络编程、文件操作、数据处理等各个领域,简化了开
全书分为三篇:第一篇介绍编程以及Ruby的基本概念,并用简单的例子快速引导读者开发真正的Ruby应用程序;第二篇讲解Ruby语言的核心概念和语法,并综合这些概念和语法,以机器人小程序为例进行了实战开发;第三篇深入...
分2卷压缩,另一卷在我的资源列表 本书从Ruby和Rails的历史讲起,以在Rails...本书注重实用性,适合初学者迅速掌握Ruby开发工具的使用方法,为希望深入了解Rails框架并建立健壮网络应用的开发人员提供强大的技术支持。
第1部分:Ruby基础 1.1 安装Ruby 在开始之前,确保你已经安装了Ruby。你可以从Ruby官方网站下载安装包,或者使用版本管理工具如rbenv来安装。 1.2 基本语法 Ruby的语法简洁明了,支持多种编程范式。 # 打印Hello, ...
包含所有网络编程所用到的图表:列出了他们的主要数 asp,php,ruby,css,assiic,html,css,sqlserver,javascript...
其它编程语言的学习都主要来自于书本,而Ruby的学习却是完全经由网络。我想,回报网络的最好方式就是在网络上还没有Ruby中文书籍的时候,编著一本Ruby中文入门教材。感谢编程语言发展史上的前辈们;感谢网络论坛上...
减少编程时候的不必要的琐碎时间,令编写程序的人高兴,是设计 Ruby 语言的 Matz 的一个首要的考虑;其次是良好的界面设计。他强调系统设计必须注重人性化,而不是一味从机器的角度设想。 “ 人们特别是电脑工程师们...
主要介绍了用Ruby进行CGI编程的入门指引,编写CGI脚本也是Ruby用于网络编程的一项基础功能,需要的朋友可以参考下