linux上socket编程调试connect出错有关问题

linux下socket编程调试connect出错问题
服务器代码socket1.c
C/C++ code
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <sys/wait.h>
#define SERVPORT 2300 /*服务器监听端口号 */
#define BACKLOG 10 /*最大同时连接请求数 */
main(){
    int sockfd,client_fd;
    struct sockaddr_in my_addr;
    struct sockaddr_in remote_addr;
    if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1){
    perror("socket创建出错!");
    exit(1);
    }
    my_addr.sin_family=AF_INET;
    my_addr.sin_port=htons(SERVPORT);
    my_addr.sin_addr.s_addr=INADDR_ANY;
    bzero(&(my_addr.sin_zero),8);
    if(bind(sockfd,(struct sockaddr *)&my_addr,sizeof(struct sockaddr))==-1){
        perror("bind出错!");
        exit(1);
    }
    if(listen(sockfd,BACKLOG)==-1)
    {
        perror("listen出错!");
        exit(1);
    }
    while(1){
        int sin_size=sizeof(struct sockaddr_in);
        if((client_fd=accept(sockfd,(struct sockaddr *)&remote_addr,&sin_size))==-1)
        {
            perror("accept出错!");
            continue;
        }
    printf("received a connection from %s",inet_ntoa(remote_addr.sin_addr));
    if(!fork()){
    if(send(client_fd,"Hello,you are connect!",26,0)==-1)
    perror("send出错!");
    close(client_fd);
    exit(0);
    }
    close(client_fd);
    }
}

客户端代码socket3.c
C/C++ code
#include<stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <netdb.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>
#define SERVPORT 2300
#define MAXDATASIZE 100 /*每次最大数据传输量 */
main(int argc, char *argv[]){
 int sockfd,recvbytes;
 char buf[MAXDATASIZE];
 struct hostent *host;
 struct sockaddr_in serv_addr;
 if(argc<2){
   fprintf(stderr,"Please enter the server's hostname!");
   exit(1);
 }
 if((host=gethostbyname(argv[1]))==NULL){
   perror("gethostbyname出错!");
   exit(1);
 }
 if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1)
 {
   perror("socket创建出错!");
   exit(1);
 }
 serv_addr.sin_family=AF_INET;
 serv_addr.sin_port=htons(SERVPORT);
 serv_addr.sin_addr=*((struct in_addr*)host->h_addr);
 bzero(&(serv_addr.sin_zero),8);

 if(connect(sockfd,(struct sockaddr *)serv_addr,sizeof(struct sockaddr))==-1){
   perror("connect出错!");
   exit(1);
 }
 if((recvbytes=recv(sockfd,buf,MAXDATASIZE,0))==-1){
 perror("recv出错!");
 exit(1);
 }
 buf[recvbytes]='\0';
 printf("Received:%s",buf);
 close(sockfd);
}

在命令行./socket1 &
再./socket3 127.0.0.1
给出connect出错!:Connection refused

------解决方案--------------------
把防火墙关了试试
------解决方案--------------------
探讨

把防火墙关了试试

------解决方案--------------------
探讨

把防火墙关了试试