[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 メーリングリストの案内