電子書籍の厳選無料作品が豊富!

下記のコードを実行しますと、『connect call failed!: Connection refused rc=-1』
のコネクションエラーになります。
ラン環境:Linux Ubuntu18.04.3

Q1)このエラーを解消する方法をお教え頂けないでしょうか?

//file WK_tcp/tcp_1.c
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <stdlib.h>

int main(void){
printf("AAAA\n");
struct sockaddr_in peer;
int s;
int rc;
char buff[1];

peer.sin_family=AF_INET;
peer.sin_port=htons(7500);//8080<--7500 6379
//20, 21, 22, 23, 25, 80, 123, 443,
peer.sin_addr.s_addr=inet_addr("127.0.0.1");

s=socket(AF_INET, SOCK_STREAM,0);
if(s<0){
perror("socket call failed!");
exit(1);
}
rc=connect(s, (struct sockaddr*)&peer, sizeof(peer)); <ーーここでエラー

if(rc<0){
perror("connect call failed!");
printf("rc=%d\n", rc);
exit(1);
}
rc=send(s, "1", 1, 0);
if(rc<0){
perror("send call failed!");
exit(1);
}
rc=recv(s, buff, 1, 0);
if(rc<0){
perror("recv call failed!");
exit(1);
}
else{
printf("%c\n", buff[0]);
}
}
以上、お手数ですが宜しくお願いします。

A 回答 (3件)

No.1です。



> <ーープログラムを起動するときの引数が不明です。

仰っていることが不明です・・・

少なくとも質問文に掲載されているプログラムであれば、引数は一切無視しています。
>int main(void){

恐らく、この質問文から質問者の状況は大きく変化していると思います。
この質問は既に意味をなさないと思いますので、一度この質問を締め切った上で、現状で困っていることを新たな質問として投稿した方がいいと思います。
    • good
    • 0

https://detail.chiebukuro.yahoo.co.jp/qa/questio …

connect()に関しては解決したんじゃないかね。
質問したいのは、
https://detail.chiebukuro.yahoo.co.jp/qa/questio …
では?

argv[]ってどういうもので、プログラムにどう渡すのか調べりゃいいんじゃないですかね。
まぁ、絶賛放置プレイになるわけですが。
# ターミナル2つ開くか、バックグラウンドに落とすかしないとダメでしょうけどね。
# とか書くとその方法をオウム返ししてもらえるのか?
    • good
    • 0
この回答へのお礼

> ターミナル2つ開くか、バックグラウンドに落とすかしないとダメでしょうけどね。
# とか書くとその方法をオウム返ししてもらえるのか?
<ーープログラムを起動するときの引数が不明です。
宜しくお願いします。

お礼日時:2019/12/10 09:03

単純に 127.0.0.1:7500 がLISTENしてないだけじゃないでしょうか?

    • good
    • 0
この回答へのお礼

お世話になります。
> ターミナル2つ開くか、バックグラウンドに落とすかしないとダメでしょうけどね。
# とか書くとその方法をオウム返ししてもらえるのか?
<ーープログラムを起動するときの引数が不明です。
以上

お礼日時:2019/12/10 09:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!