[Armadillo:08570] Re: armadillo440とFOMA UM02-F でデータ通信(ppp)について
Yasushi SHOJI
email@hidden
2013年 1月 29日 (火) 21:04:51 JST
At Tue, 29 Jan 2013 19:07:43 +0900,
shimizu wrote:
>
> > errnoは、いくつですか?
> connect関数のerrnoは、
> 110(10進):ETIMEDOUT:Connection timed out でした。
> ※約3分待ってエラーになります。
サーバーが反応していない?
> > 一応確認ですが、pingは通っているんですよね?
> ifconfigコマンドで確認すると以下の様になりますので
> pingは通っていると思います。
[...]
> ppp0 Link encap:Point-Point Protocol
> inet addr:xx.xxx.xxx.xxx P-t-P:yyy.y.y.yy Mask:255.255.255.255
> UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
> RX packets:3 errors:0 dropped:0 overruns:0 frame:0
> TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
> collisions:0 txqueuelen:3
> RX bytes:42 (42.0 B) TX bytes:48 (48.0 B)
>
> [email@hidden (ttymxc2) ~]# ping -c 5 yyy.y.y.yy
> PING yyy.y.y.yy (yyy.y.y.yy): 56 data bytes
> 64 bytes from yyy.y.y.yy: icmp_seq=0 ttl=63 time=415.4 ms
> 64 bytes from yyy.y.y.yy: icmp_seq=1 ttl=63 time=424.7 ms
> 64 bytes from yyy.y.y.yy: icmp_seq=2 ttl=63 time=474.3 ms
> 64 bytes from yyy.y.y.yy: icmp_seq=3 ttl=63 time=423.8 ms
> 64 bytes from yyy.y.y.yy: icmp_seq=4 ttl=63 time=553.4 ms
[...]
> ppp0 Link encap:Point-Point Protocol
> inet addr:xx.xxx.xxx.xxx P-t-P:yyy.y.y.yy Mask:255.255.255.255
> UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
> RX packets:8 errors:0 dropped:0 overruns:0 frame:0
> TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
> collisions:0 txqueuelen:3
> RX bytes:462 (462.0 B) TX bytes:468 (468.0 B)
5パケット増えたってことですよね?
> こうなりますと、自作プログラム以前の問題でしょうか。
テストコードを付けます。
$ gcc -Wall -Wextra -g a.c
$ ./a.out 74.125.235.69
とか、できますか? (google.comです)
> 気になっているのが DNS なのですが、
> 上記ログですと、DNSが取得出来ていない。という事でしょうか???
> ※ログの、ms-dns1 0.0.0.0、ms-dns3 0.0.0.0 や、
ms-dns は pppd が dns を割り付けるんですね。でも 0.0.0.0か...
> not replacing existing default route via 192.168.1.1
pppd がコネクションを確立してから、routing table は、どうなります?
--
yashi
-------------- next part --------------
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#define PORT_NUM (80)
void error(const char *msg)
{
perror(msg);
exit(0);
}
int main(int argc, char *argv[])
{
int tcp_socket;
int ret;
struct sockaddr_in sa;
char buf[4096];
if (argc < 2) {
fprintf(stderr,"usage %s ip\n", argv[0]);
exit(0);
}
tcp_socket = socket(AF_INET, SOCK_STREAM, 0);
if (tcp_socket < 0)
error("ERROR opening socket");
memset(&sa, 0, sizeof(sa));
sa.sin_family = AF_INET;
sa.sin_port = htons(PORT_NUM);
sa.sin_addr.s_addr = inet_addr(argv[1]);
ret = connect(tcp_socket, (struct sockaddr *)&sa, sizeof(struct sockaddr));
if (ret < 0)
error("ERROR connecting");
ret = write(tcp_socket, "GET /\r\n", 7);
if (ret != ret)
error("ERROR writing to socket");
memset(buf, 0, 4096);
ret = read(tcp_socket, buf, 4096);
if (ret < 0)
error("ERROR reading from socket");
write(1, buf, ret);
close(tcp_socket);
return 0;
}
-------------- next part --------------
armadillo メーリングリストの案内