250x250
Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 이력서
- 파이썬
- jsp 파일 설정
- Topics
- test
- 과학백과사전
- tomoto
- 幼稚园杀手(유치원킬러)
- Websocket
- pytorch
- RESFUL
- 게시판 만들기
- spring MVC(모델2)방식
- db
- 자바
- 방식으로 텍스트
- r
- java
- 토픽추출
- Gmarket
- Python
- 코사인 유사도
- word2vec
- (깃)git bash
- 네이버뉴스
- 지마켓
- lda
- mysql
- oracle
- 크롤링
Archives
- Today
- Total
무회blog
Java: websocket, 자바 서버 , 파이썬 클라이언트 ,001 본문
1. 자바 다이나믹 웹(web) 프로젝트 생성
2. java 다이나믹 웹(web) 서블릿 프로젝트에서 라이브러리(lib) 추가 :
3. 서버 : 톰캣 8.5 버전 추가
4. 소스
1) 서버 자바(tomcat Servlet)
websocket.java
import javax.websocket.OnClose;
import javax.websocket.OnError;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.server.ServerEndpoint;
@ServerEndpoint("/websocket")
public class websocket {
/***
* 웹 소켓이 연결되면 호출되는 이벤트
*/
@OnOpen
public void handleOpen(){
System.out.println("client is now connected...");
}
/**
* 웹 소켓으로부터 메시지가 오면 호출되는 이벤트
* @param message
* @return
*/
@OnMessage
public String handleMessage(String message){
System.out.println("receive from client : "+message);
String replymessage = "echo "+message;
System.out.println("send to client : "+replymessage);
return replymessage;
}
/**
* 웹 소켓이 닫히면 호출되는 이벤트
*/
@OnClose
public void handleClose(){
System.out.println("client is now disconnected...");
}
/**
* 웹 소켓이 에러가 나면 호출되는 이벤트
* @param t
*/
@OnError
public void handleError(Throwable t){
t.printStackTrace();
}
public static void main(String[] args){
websocket ws = new websocket();
}
}
2) 파이썬 클라이언트
websocket_client02.py
(파이참 툴로 돌림 )
import asyncio
# 웹 소켓 모듈을 선언한다.
import websockets
# ----------------------------------------------------------------------------------------------//
# java 웹소켓 서버에 접속후 프롬프트 상에서 문자열을 입력받아 자바 웹소켓 서버에 전송하고
# 전송한 문자열에 대한 에코를 리턴 받는다.
# quit(종료) 문자를 입력받을 때까지 계속 웹소켓 연결되어 있다. quit 문자가 입력되면 접속이 자동으로 끊긴다.
# java 웹소켓 서버는 test_wsServlet이고(프로젝트명) 톰캣 서블릿 컨테이너에 웹소켓 서비스를 연것이다.
# ----------------------------------------------------------------------------------------------//
async def connect():
# 웹 소켓에 접속을 합니다.
async with websockets.connect("ws://localhost:8081/test_wsServlet/websocket") as websocket:
str = input('자바 웹소켓으로 전송할 내용을 입력하세요[종료하려면 quit 입력!]: ') # 사용자의 입력을 변수에 저장
#print(str) # 변수의 내용을 출력
# #입력받은 값을 파일로 저장
# f = open('./chat/chatlog.txt', 'w')
# f.write(str)
while str != 'quit':
# quit가 들어오기 전까지 계속 입력받은 문자열을 전송하고 에코를 수신한다.
await websocket.send(str);
# 웹 소켓 서버로 부터 메시지가 오면 콘솔에 출력합니다.
data = await websocket.recv();
print(data);
# f.write(data)
str = input('자바 웹소켓으로 전송할 내용을 입력하세요[종료하려면 quit 입력!]: ') # 사용자의 입력을 변수에 저장
# print(str) # 변수의 내용을 출력
# f.close();
# 비동기로 서버에 접속한다.
asyncio.get_event_loop().run_until_complete(connect())
Source from DBA Mr.김
'Java' 카테고리의 다른 글
Java: List 에서 forEach 사용 예제 , (메서드 접근 -> static 유무로 테스트) (0) | 2020.11.08 |
---|---|
Java: , 배열(Array) 사용법 (0) | 2020.09.01 |
Java: 자바 test。B01 (0) | 2020.07.21 |
Java: 자바 1.8 다운로드 경로 / java 1.8 Download + 환경변수 설정 (0) | 2020.05.10 |
Java: 인스턴스오브 연산자의 의미 (0) | 2020.04.17 |
Comments