티스토리 뷰
서버
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.ServerSocket; import java.net.Socket; import javax.swing.plaf.synth.SynthSeparatorUI; public class TcpServer { public static void main(String[] args) { try { ServerSocket serSocket = new ServerSocket (5001); Socket client = serSocket.accept(); BufferedWriter w = new BufferedWriter(new OutputStreamWriter(client.getOutputStream())); BufferedReader r = new BufferedReader(new InputStreamReader(client.getInputStream())); String UserName = ""; while(true){ if(UserName.equals("")){ UserName = r.readLine() + "(" + client.getInetAddress().getHostAddress() +")"; System.out.println("유저이름저장완료!"); continue; } String data = r.readLine().trim(); if(data.equals("quit")) break; w.write(UserName +" : " + data + "\n"); w.flush(); } w.close(); r.close(); serSocket.close(); client.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } | cs |
ServerSocket : 서버 소켓 생성 - ServerSocket(포트번호)
serSocket.accept() : 클라이언트 접솔을 기다림
BufferedWriter : 클라이언트에 보내기위해
BufferedReader : 클라이언트에서 보내온 걸 읽기위해
.write() : 클라이언트에 보낼 정보를 쓰기
.flush() : 버퍼를 비움
.readLine() : BufferedReader로 클라이언트에서 보내온 걸 한줄씩 읽음
.close() : 자원 해제
클라이언트
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.InetAddress; import java.net.Socket; import java.net.UnknownHostException; import java.util.Scanner; import javax.swing.plaf.synth.SynthSeparatorUI; public class TcpClient { public static void main(String[] args) { Scanner sc = new Scanner(System.in); try { System.out.print("서버 아이피를 입력 하시오 ! : "); String ip = sc.nextLine(); Socket socket = new Socket( InetAddress.getByName(ip) , 5001); String UserName= ""; BufferedWriter w = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())); BufferedReader r = new BufferedReader(new InputStreamReader(socket.getInputStream())); while(true){ if(UserName.equals("")){ System.out.print("유저 이름 설정 : "); String str = sc.next(); w.write(str + "\n"); w.flush(); UserName= str; continue; } System.out.print("채팅할 말 : "); String str = sc.next(); w.write(str + "\n"); w.flush(); if(str.equals("quit")) break; String data = r.readLine().trim(); System.out.println(data); } socket.close(); w.close(); r.close(); } catch (UnknownHostException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } | cs |
Socket : 서버와 연결하기위해 소켓 생성 - ip, port
InetAddress.getByName(ip) : InetAddress로 ip 관리
BufferedWriter : 서버에 보낼 정보를 쓰기위해
BufferedReader : 서버에 보내온 정보를 받기위해
.write() : 서버에 보낼 정보를 쓰기
.flush() : 버퍼를 비움
.readLine() : BufferedReader로 서버에서 보내온 걸 한줄씩 읽음
.close() : 자원 해제
결과 :
서버
유저이름저장완료! //클라이언트에서 보낸 유저이름을 저장
클라이언트
서버 아이피를 입력 하시오 ! : 0.0.0.0 //연결할 서버 아이피 주소
유저 이름 설정 : sime
채팅할 말 : Hi //서버로 보냄
sime(192.168.0.12) : Hi //서버에서 옴
채팅할 말 : 안녕?
sime(192.168.0.12) : 안녕?
반응형
'언어 > JAVA' 카테고리의 다른 글
[JAVA] MYSQL 연결 및 쿼리 보내기 (1) | 2016.10.21 |
---|---|
[JAVA] 라이브러리 추가 (0) | 2016.10.21 |
[JAVA] UDP 통신해보기 (0) | 2016.09.27 |
[JAVA] 서버(server)와 클라이언트(client), TCP와 UDP (0) | 2016.09.27 |
[JAVA] FileWriter, FileReader (0) | 2016.09.26 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- nsis
- synchronized
- 종류
- UTF-8
- Default
- 자바
- Controller
- 안드로이드
- Create
- iNT
- 음식
- 라이브러리
- mysql
- java
- js
- jsp
- mybatis
- 스프링
- 클래스
- 연결
- 어노테이션
- jdbc
- Android
- Server
- 하기
- Class
- Delete
- spring
- 사용
- 생성
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함