lanchat 1.1.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/lib/Rakefile +85 -0
- metadata +74 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 07e8953fc43b709aa5a5b3552e827716b08c1510
|
4
|
+
data.tar.gz: 1092dd9b107b42e0974d922710f5a78ccb9b8ad7
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: f7dbb51525cdd016d376e080bb7b256612c09ff350eedd310de4ce3ea0d5efe795e00f663ace7d3e64d9ed2deb6e18bcf4952087129991cffd1ee6a058c8966c
|
7
|
+
data.tar.gz: 561e011d7f94bffc1a2d4c98ee12fbc0f7993e0f2380cd29dc804a6d0ae0c5ec6278ed564003e339a788844ae0e48a7a47d753e00693499522df1b3e9b26014d
|
data/lib/Rakefile
ADDED
@@ -0,0 +1,85 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
2
|
+
|
3
|
+
# import "../lib/tasks/start_server.rake".
|
4
|
+
|
5
|
+
# spec = Gem::Specification.find_by_name 'start_server'
|
6
|
+
# load "#{spec.gem_dir}/tasks/start_server.rake"
|
7
|
+
|
8
|
+
# task :default => [:start_server]
|
9
|
+
|
10
|
+
# task :start_server do
|
11
|
+
# ruby "lanchat.rb"
|
12
|
+
# end
|
13
|
+
|
14
|
+
|
15
|
+
require "rubygems"
|
16
|
+
require "bundler/setup"
|
17
|
+
|
18
|
+
task "start_server" do
|
19
|
+
require "lanchat/version"
|
20
|
+
require "socket"
|
21
|
+
module Lanchat
|
22
|
+
|
23
|
+
class ChatServer
|
24
|
+
|
25
|
+
def initialize( port )
|
26
|
+
@descriptors = Array::new
|
27
|
+
@serverSocket = TCPServer.new( "", port )
|
28
|
+
@serverSocket.setsockopt( Socket::SOL_SOCKET, Socket::SO_REUSEADDR, 1 )
|
29
|
+
printf("Chatserver started on port %d\n", port)
|
30
|
+
@descriptors.push( @serverSocket )
|
31
|
+
end # initialize
|
32
|
+
|
33
|
+
def run
|
34
|
+
while 1
|
35
|
+
res = select( @descriptors, nil, nil, nil )
|
36
|
+
if res != nil then
|
37
|
+
# Iterate through the tagged read descriptors
|
38
|
+
for sock in res[0]
|
39
|
+
# Received a connect to the server (listening) socket
|
40
|
+
if sock == @serverSocket then
|
41
|
+
accept_new_connection
|
42
|
+
else
|
43
|
+
# Received something on a client socket
|
44
|
+
if sock.eof? then
|
45
|
+
str = sprintf("Client left %s:%s\n",
|
46
|
+
sock.peeraddr[2], sock.peeraddr[1])
|
47
|
+
broadcast_string( str, sock )
|
48
|
+
sock.close
|
49
|
+
@descriptors.delete(sock)
|
50
|
+
else
|
51
|
+
str = sprintf("[%s|%s]: %s",
|
52
|
+
sock.peeraddr[2], sock.peeraddr[1], sock.gets())
|
53
|
+
broadcast_string( str, sock )
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
private
|
62
|
+
def broadcast_string( str, omit_sock )
|
63
|
+
@descriptors.each do |clisock|
|
64
|
+
if clisock != @serverSocket && clisock != omit_sock
|
65
|
+
clisock.write(str)
|
66
|
+
end
|
67
|
+
end
|
68
|
+
print(str)
|
69
|
+
end # broadcast_string
|
70
|
+
|
71
|
+
def accept_new_connection
|
72
|
+
newsock = @serverSocket.accept
|
73
|
+
@descriptors.push( newsock )
|
74
|
+
newsock.write("You're connected to the Ruby chatserver\n")
|
75
|
+
str = sprintf("Client joined %s:%s\n",
|
76
|
+
newsock.peeraddr[2], newsock.peeraddr[1])
|
77
|
+
broadcast_string( str, newsock )
|
78
|
+
|
79
|
+
end # accept_new_connection
|
80
|
+
end #server
|
81
|
+
myChatServer = ChatServer.new(2000)
|
82
|
+
myChatServer.run
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
metadata
ADDED
@@ -0,0 +1,74 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: lanchat
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.1.8
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Amardeep
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-10-22 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.8'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.8'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.0'
|
41
|
+
description: " just install gem and and type rake start_server."
|
42
|
+
email:
|
43
|
+
- amardeep129@gmail.com
|
44
|
+
executables: []
|
45
|
+
extensions: []
|
46
|
+
extra_rdoc_files: []
|
47
|
+
files:
|
48
|
+
- lib/Rakefile
|
49
|
+
homepage: ''
|
50
|
+
licenses:
|
51
|
+
- MIT
|
52
|
+
metadata: {}
|
53
|
+
post_install_message:
|
54
|
+
rdoc_options: []
|
55
|
+
require_paths:
|
56
|
+
- "../lib"
|
57
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
63
|
+
requirements:
|
64
|
+
- - ">="
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: '0'
|
67
|
+
requirements: []
|
68
|
+
rubyforge_project:
|
69
|
+
rubygems_version: 2.4.6
|
70
|
+
signing_key:
|
71
|
+
specification_version: 4
|
72
|
+
summary: Ruby gem lanchat makes it easy to chat on local lan with command line.
|
73
|
+
test_files: []
|
74
|
+
has_rdoc:
|