Socket 9

소켓통신으로 받은 데이터 mysql 서버에 저장하기 (python으로 쿼리문 이용)

소켓 통신으로 체온을 넘겨주면 캡스톤 대회 준비 중 필요한 기능으로 QR코드로 학과, 학번, 이름을 DB에 저장한뒤에 그 다음 체온을 재서 소켓통신을 활용해 온도를 넘겨 받은 후에 그것을 mysql 서버에 저장할 것이다. 원하는 위치에 대한 update 기능이 필요하여서 구현해보게 됐다. 간단하게 python 을 이용해서 text 파일의 내용을 읽어드린 후 그것을 실시간으로 계속 받아와야 하기에 while문 안에서 if문을 통해 조건을 부여받고 같은 체온이면 저장하지 않고, 그 다음 사람의 체온이 받아질 때 까지 text file만 읽고 있다가 변화하면 저장하는 형식으로 구현해보았다. 먼저 QR을 통해 데이터베이스에 사용자를 추가하게되면 id값이 부여되고 학번, 이름, 학과, 시간 의 데이터가 들어간다...

Socket 2020.09.14

소켓통신으로 실시간 메모장 데이터 보내기 (python)

우선, 이번 학교에서 있는 캡스톤 대회 준비하는데 필요한 소켓통신 부분을 python 으로 시도해 보았다. 먼저 메모장의 데이터를 python 으로 소켓통신 하기 전에 간단한 메시지를 주고 받는 예제를 이용하여 조금 각색해 보았다. [ 서버 -- 라즈베리파이 / 클라이언트 -- PC ] 다음은 간단한 예제 코드이다. import socket # 접속할 서버 주소입니다. 여기에서는 루프백(loopback) 인터페이스 주소 즉 localhost를 사용합니다. HOST = '127.0.0.1' # 클라이언트 접속을 대기하는 포트 번호입니다. PORT = 9999 # 소켓 객체를 생성합니다. # 주소 체계(address family)로 IPv4, 소켓 타입으로 TCP 사용합니다. ser..

Socket 2020.07.29

라즈베리파이 C - Android

라즈베리파이에서 서버를 열어 android에게 메시지를 받는것을 해보았다. #include #include #include #include #include #include #include #include #include #include #include #include #define MAXLINE 511 #define MAX_SOCK 1024 // 솔라리스의 경우 64 char *EXIT_STRING = "exit";// 클라이언트의 종료요청 문자열 char *START_STRING = "Connected to chat_server \n"; // 클라이언트 환영 메시지 int maxfdp1;// 최대 소켓번호 +1 int num_user = 0;// 채팅 참가자 수 int num_c..

Socket 2020.03.02

C (win) - Android

소켓통신 이용하여 "hello world" 문자열 보내보기 기존 C언어로 구성했던 window 환경에서 C-C 간의 채팅 소켓통신을 했던 C서버를 이용하고, python - android 에서 이용했던 android 클라이언를 이용하여 문자열, 문자, 숫자 이러한 것들을 클라이언트에서 window 에게 간단히 보낼 수 있는 (Client인 안드로이드에서는 서버가 보낸 메시지를 확인할 수 없음 코드변경 필요.) 것을 성공했다! 우선 C언어의 코드이다. 내 생각이지만 기본 C언어 서버로도 충분히 가능할 것 같다. recv하는 함수를 넣어주면 말이다. 하지만 기본에서는 recv 하는 함수 대신 send 하기 때문에 기본에서는 연결만 되고 끊기지 않나 생각이 든다. 그래서 recv 기능도 가능한 채팅 코드를 이..

Socket 2020.03.02

라즈베리파이 (python) - android

저번에 구성했던 android 와 같이 이번에는 라즈베리파이와 연결을 시도해 보았다. 코드는 저번 글에 있으므로 생략했다. 라즈베리파이에서는 python 코드에 있는 한글이 인코딩이 제대로 안되어 한글이 터미널에 안 떠 오류가 나는 듯 하여 영어로 바꾸어 주었다. 한글이 뜨게도 할 수 있겠지만 나중에 해볼 것이다. 아 그리고 서버의 주인이 라즈베리파이의 ip가 다른점을 고려하여 python 코드와 android 코드의 ip 주소 입력 부분을 일부 수정하였다. 우선 python 파일을 실행시켜주면 wating... 이라는 글과 함께 클라이언트의 접속을 기다린다. 그러면 이제 안드로이드에서 ip 입력을 하여 접속을 해보겠다. 접속을 하게되면 android studio 로그에서 확인을 할 수 있다. 아래와 같..

Socket 2020.02.24

라즈베리파이(리눅스) - win <C 언어>

아래의 코드를 사용하여 라즈베리파이에서 server.c 파일로 만들어 [ $ gcc server.c -o server ] 문구를 이용해 컴파일 해주면 실행파일이 만들어 진다. #include #include #include #include #include #include void error_handling(char *message); int main(int argc, char *argv[]) { int serv_sock; int clnt_sock; struct sockaddr_in serv_addr; struct sockaddr_in clnt_addr; socklen_t clnt_addr_size; char message[]="Hello World!"; if(argc!=2){ printf("Usage :..

Socket 2020.02.24

python 서버 android 클라이언트

https://blog.naver.com/rhrkdfus/221406909355 위의 블로그를 참고해 구현해 보았다. 간단하게 안드로이드에서 python서버에 접속해 데이터 값을 한번 받는 코드이다. activity_main.xml MainActivity.java package com.example.androidpython; import android.os.Handler; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import androidx.a..

Socket 2020.02.23

python 서버, python 클라이언트

python 으로 서버와 클라이언트 코드를 짠 후에 서로 메시지를 보내고 받는 것을 해보았다. from socket import * serverSock = socket(AF_INET, SOCK_STREAM) serverSock.bind(('', 8080)) serverSock.listen(1) connectionSock, addr = serverSock.accept() print(str(addr),'에서 접속이 확인되었습니다.') data = connectionSock.recv(1024) print('받은 데이터 : ', data.decode('utf-8')) connectionSock.send('I am a server.'.encode('utf-8')) print('메시지를 보..

Socket 2020.02.23

C server , C client 통신 기본예제

오렌지미디어 - 자료실의 예제를 참고 했다 #pragma comment(lib, "ws2_32.lib") #define _WINSOCK_DEPRECATED_NO_WARNINGS 갖갖이 오류들이 떠 위의 코드를 추가 - C Server - #pragma comment(lib, "ws2_32.lib") #define _WINSOCK_DEPRECATED_NO_WARNINGS #include #include #include void ErrorHandling(char* message); int main(int argc, char* argv[]) { WSADATA wsaData; SOCKET hServSock, hClntSock; SOCKADDR_IN servAddr, clntAddr; int szClntAddr;..

Socket 2020.02.23