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