일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- albumbook
- 앨범북
- Xcode
- SSH
- 앱리소스
- SWIFT
- git
- FIDO2
- SwiftUI
- MSYS2
- Android
- 애플
- 안드로이드
- kmip
- MYSQL
- MFA
- 앱스토어
- apple
- css
- 2FA
- 인증
- OTP
- fido
- OSX
- otpkey
- Nodejs
- openssl
- WebAuthn
- SSL
- appres
Archives
- Today
- Total
인디노트
TCP 전송의 C 코드 본문
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
#define SERVER_IP "127.0.0.1" // 서버 IP 주소
#define SERVER_PORT 12345 // 서버 포트 번호
#define BUF_SIZE 1024 // 버퍼 크기
int main(int argc, char *argv[]) {
int sock;
struct sockaddr_in serv_addr;
char buffer[BUF_SIZE];
int len, msglen;
// 소켓 생성
sock = socket(AF_INET, SOCK_STREAM, 0);
if (sock == -1) {
perror("socket");
exit(1);
}
// 서버 주소 설정
memset(&serv_addr, 0, sizeof(serv_addr));
serv_addr.sin_family = AF_INET;
serv_addr.sin_addr.s_addr = inet_addr(SERVER_IP);
serv_addr.sin_port = htons(SERVER_PORT);
// 서버에 연결
if (connect(sock, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) == -1) {
perror("connect");
exit(1);
}
// 보낼 데이터 입력
printf("Enter message to send: ");
fgets(buffer, BUF_SIZE, stdin);
len = strlen(buffer);
// 데이터 전송
msglen = send(sock, buffer, len, 0);
if (msglen == -1) {
perror("send");
exit(1);
}
printf("Sent %d bytes to %s:%d\n", msglen, SERVER_IP, SERVER_PORT);
close(sock);
return 0;
}
- 소켓 디스크립터: 데이터를 보낼 소켓을 지정합니다.
- 버퍼: 보낼 데이터가 저장된 버퍼의 포인터를 지정합니다.
- 버퍼 크기: 보낼 데이터의 크기를 바이트 단위로 지정합니다.
- 플래그: 일반적으로 0으로 설정합니다.
반응형
'개발 플랫폼 및 언어 > 네트워크 기술' 카테고리의 다른 글
iphdr 를 이용해서 tcphdr 를 찾는 C 코드 (0) | 2023.04.13 |
---|---|
ICMP ping 구현의 C 코드 (0) | 2023.04.12 |
sendto 로 UDP 데이터 전송 C 코드 (0) | 2023.04.12 |
NIC 맥주소 가져오는 C 코드 (0) | 2023.04.11 |
Ethernet 에서 내가 보낸 데이터를 내가 수신하는 것을 감지하는 방법 (0) | 2023.04.11 |
Comments