본문 바로가기

# IT, Computer Science/Linux , Embedded

Linux Client

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.


클라이언트 소스
자신의 아이피의 530 포트로 접속을 시도하여 메세지를 보내고 Sever로부터 메세지를 받아서 출력하는 간단한 기능
0000 을 보낼경우 Socket Close

#include <stdio.h>

#include <netinet/in.h>

#include <sys/socket.h>

#include <strings.h>

 

#define PORT 530

#define IPADDR "127.0.0.1"

 

char          buffer[BUFSIZ];

char exitstring[4]="0000";

 

main( )

{

                  int             c_socket;

                  struct sockaddr_in c_addr;

                  int             len;

 

                  char          rcvBuffer[BUFSIZ];

 

                  int             n;

 

                  c_socket = socket(PF_INET, SOCK_STREAM, 0);

 

                  memset(&c_addr, 0, sizeof(c_addr));

                  c_addr.sin_addr.s_addr = inet_addr(IPADDR);

                  c_addr.sin_family = AF_INET;

                  c_addr.sin_port = htons(PORT);

 

                  if(connect(c_socket, (struct sockaddr *) &c_addr, sizeof(c_addr)) == -1) {

                                   printf("Can not connect Sever\n");

                                   close(c_socket);

                                   return -1;

                  }

 

                  while(1)

                  {               

                                   printf("Enter to send message : ");                          

                                   scanf("%s", buffer);

 

                                   if(strcmp(exitstring, buffer)==0)

                                                     break;

 

                                   buffer[strlen(buffer)] = '\0';

                                   write(c_socket, buffer, strlen(buffer)+1);

 

                                   if((n = read(c_socket, rcvBuffer, sizeof(rcvBuffer))) < 0) {

                                                     return (-1);

                                   }

 

                                   rcvBuffer[n] = '\0';

                                   printf("received Data : %s\n", rcvBuffer);

 

                  }

 

                  close(c_socket);

}