lanchat 1.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/Rakefile +85 -0
  3. 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: