diff options
Diffstat (limited to 'src/gps_test.rb')
-rwxr-xr-x | src/gps_test.rb | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/gps_test.rb b/src/gps_test.rb new file mode 100755 index 0000000..4f35ec5 --- /dev/null +++ b/src/gps_test.rb @@ -0,0 +1,43 @@ +#!/usr/bin/env ruby1.8 + +require 'socket' + +GPS_SERVER_IP = "192.168.2.1" +GPS_SERVER_PORT = 5445 +MODE = :client +PROTOCOL = :tcp + +def tcp_read(sock) + loop { + data = sock.readline() + puts data.inspect + } +end + +if PROTOCOL == :tcp + if MODE == :client + sock = TCPSocket.new(GPS_SERVER_IP, GPS_SERVER_PORT) + tcp_read(sock) + sock.close + else + serv = TCPServer.new(GPS_SERVER_PORT) + sock = serv.accept + tcp_read(sock) + sock.close + end +elsif PROTOCOL == :udp + sock = UDPSocket.new + sock.bind('0.0.0.0', GPS_SERVER_PORT) + + loop { + begin + msg, sender = sock.recvfrom(1024) + rescue Errno::EAGAIN, Errno::EWOULDBLOCK => e + puts "recvfrom error: #{e.class}: #{e}" + next + end + puts msg.inspect + } +end + + |