Created
January 12, 2022 11:48
-
-
Save Park-Developer/92c7b5ac5360bb424cd7cae5df6cce41 to your computer and use it in GitHub Desktop.
tcp_client using c
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdio.h> | |
#include <string.h> | |
#include <unistd.h> | |
#include <sys/socket.h> | |
#include <arpa/inet.h> | |
#define TCP_PORT 5100 | |
int main(int argc, char **argv) | |
{ | |
int ssock; | |
struct sockaddr_in servaddr; | |
char mesg[BUFSIZ]; | |
if(argc<2){ | |
printf("Usage : %s IP_ADDRESS\n",argv[0]); | |
return -1; | |
} | |
// 소켓 생성 | |
if((ssock=socket(AF_INET,SOCK_STREAM,0))<0){ | |
perror("socket()"); | |
return -1; | |
} | |
// 소켓이 접속할 주소 지정 | |
memset(&servaddr,0,sizeof(servaddr)); | |
servaddr.sin_family=AF_INET; | |
// 문자열을 네트워크 주소로 변경 | |
inet_pton(AF_INET,argv[1],&(servaddr.sin_addr.s_addr)); | |
servaddr.sin_port=htons(TCP_PORT); | |
// 지정한 주소로 접속 | |
if(connect(ssock,(struct sockaddr *)&servaddr,sizeof(servaddr))<0){ | |
perror("connect()"); | |
return -1; | |
} | |
fgets(mesg,BUFSIZ,stdin); | |
if(send(ssock,mesg,BUFSIZ,MSG_DONTWAIT)<=0){ // 데이터를 소켓에 씀 | |
perror("send()"); | |
return -1; | |
} | |
memset(mesg,0,BUFSIZ); | |
if(recv(ssock,mesg,BUFSIZ,0)<=0){ // 데이터를 소켓으로부터 읽음 | |
perror("recv()"); | |
return -1; | |
} | |
printf("Received data : %s",mesg); | |
close(ssock); | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment