blob: 8f6411231f44d9a28ed5c3476874856b785cc17e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
#!/usr/bin/env ruby1.8
require 'socket'
GPS_SERVER_IP = "192.168.2.1"
GPS_SERVER_PORT = 5445
MODE = :tcp_server
#MODE = :tcp_client
#MODE = :udp_server
#MODE = :serial
def tcp_read(sock)
loop {
begin
data = sock.readline()
p data
rescue Errno::EAGAIN, Errno::EWOULDBLOCK => e
puts "read error: #{e.class}: #{e}"
return
end
}
end
def udp_read(sock)
loop {
begin
msg, sender = sock.recvfrom(1024)
p msg
rescue Errno::EAGAIN, Errno::EWOULDBLOCK => e
puts "recvfrom error: #{e.class}: #{e}"
next
end
}
end
if MODE == :tcp_client
sock = TCPSocket.new(GPS_SERVER_IP, GPS_SERVER_PORT)
tcp_read(sock)
sock.close
elsif MODE == :tcp_server
serv = TCPServer.new(GPS_SERVER_PORT)
sock = serv.accept
tcp_read(sock)
sock.close
elsif MODE == :udp_server
sock = UDPSocket.new
sock.bind('0.0.0.0', GPS_SERVER_PORT)
udp_read(sock)
sock.close
end
|