[Armadillo:02976] Re: アルマジロ−220でソケット通信をしたい。

Hirofumi Momose email@hidden
2008年 6月 13日 (金) 13:33:26 JST


百瀬と申します。

ちょっと気づいた点。

port をいじるときは、バイトオーダーの違いがあり、htons()が必要です。
マシンエンディアンによっては無くても動きますが移植性が下がります。

errno があると、もうちょっとわかると思います。

リンク時 -lsocket などは必要なのかなあ。
solarisでは確か必要で、linuxは?です。

-- 
Hirofumi Momose <email@hidden>


On Fri, 13 Jun 2008 13:11:33 +0900 (JST)
國井 <email@hidden> wrote:

> 國井と申します。
> アルマジロ-220と計測機器をソケット通信を使い接続したいの
> ですがうまくいきません。
> ご存知の方アドバイス宜しくお願いします。
> ソケット作成まではいいのですがコネクションがうまくいきま
> せん。
> 
> 実行結果
> 
> socket?=3
> connect?=-1
> 
> 
> 
> ソース
> 
> #include <stdio.h>
> #include <stdlib.h>
> #include <string.h>
> #include <strings.h>
> #include "simple-cgi.h"
> #include <time.h>
> #include <sys/time.h>
> #include <sys/times.h>
> #include <sys/types.h>
> #include <sys/socket.h>
> #include <stdlib.h>
> #include <unistd.h>
> #include <ctype.h>
> #include <netinet/in.h>
> #include <netdb.h>
> #include <sys/fcntl.h>
> 
> //
> 
> void
> main(void)
> {
> 
>   char ans[66];
>   int sockfd, len, result;
>   struct sockaddr_in address;
>   /*クライアント用*ソケット作成*/
>    sockfd = socket(AF_INET,SOCK_STREAM,0);
> 	printf("socket?=%d\n",sockfd);
> 
>   /*サーバと同じ名前でソケットの名前指定*/
>    bzero((char *)&address, sizeof(address));
>    address.sin_family = AF_INET;
>    address.sin_addr.s_addr = inet_addr("169.254.220.30");
>    address.sin_port = 8023;
>    len = sizeof(address);
> 
>   /*クライアントのソケットとサーバのソケットの接続*/
>    result = connect(sockfd, (struct sockaddr
> *)&address,len);
>    printf("connect?=%d\n",result);
>   if(result == -1) printf("errorng \n");
> 
>   /*sockfd を介して読み書きこみできるようにする*/
>    write(sockfd,":MEAS:OUTP:ONE?\n",16);
>    read(sockfd,ans,62);
>    printf("anser==%s\n",ans);
> 
>   close(sockfd);
>   return;
> }
> 
> 
> [email@hidden (ttyp1) /etc/config]# iptables -L
> Chain INPUT (policy DROP)
> target     prot opt source               destination
> ACCEPT     all  --  anywhere             anywhere
> ACCEPT     icmp --  anywhere             anywhere
> ACCEPT     tcp  --  anywhere             anywhere         
>   tcp dpt:http
> ACCEPT     tcp  --  anywhere             anywhere         
>   tcp dpt:ftp
> ACCEPT     tcp  --  anywhere             anywhere         
>   tcp dpt:ssh
> ACCEPT     tcp  --  anywhere             anywhere         
>   tcp dpt:ftp-data
> REJECT     tcp  --  anywhere             anywhere         
>   tcp dpt:auth reject-with icmp-port-unreachable
> DROP       tcp  --  anywhere             anywhere         
>   tcp dpts:x11:6010
> ACCEPT     tcp  --  anywhere             anywhere         
>   tcp dpts:1024:65535
> ACCEPT     udp  --  anywhere             anywhere         
>   udp dpt:ssh
> ACCEPT     udp  --  anywhere             anywhere         
>   udp dpts:1024:65535
> 
> Chain FORWARD (policy ACCEPT)
> target     prot opt source               destination
> 
> Chain OUTPUT (policy DROP)
> target     prot opt source               destination
> ACCEPT     all  --  anywhere             anywhere
> ACCEPT     all  --  anywhere             anywhere
> 
> --------------------------------------
> GANBARE! NIPPON! Chance to win 50,000 Yahoo! Points!
> http://pr.mail.yahoo.co.jp/ganbare-nippon/
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/mailman/listinfo/armadillo
> 






armadillo メーリングリストの案内