Transcript ppt

01
1 개발 목적
• 필요성
• 구현 내용
4
01
2 개발 환경
• 개발 언어
5
02
처음 돌아가는 함수인
WaitingSocket()에서 시작된
BeginAccept가 Accept 되면
EndAccept가 진행되고
BeginReceive가 시작됨
AcceptReceiveCallback에서
시작된 BeginReceive가 메시지를
받게되면 EndReceive가 진행되고
MouseEvent를 처리 후 다시
BeginReceive가 시작됨
7
104 public void CallBack_ReceiveMsg(IAsyncResult ar)
105 {
106 int length;
107 getString = null;
108
109 Client = (Socket)ar.AsyncState;
110
111 try
소스 코드
112 {
113 length = Client.EndReceive(ar);
114 if (length > 0)
80 public void AcceptReceiveCallback(IAsyncResult ar)
115 {
81 {
116 getString = Encoding.UTF8.GetString(getByte, 0, length);
82 Server = (Socket)ar.AsyncState;
117 if (getString != String.Empty)
83 try
118 {
84 {
119 // 폰에서 전송한 내용 처리 시작 (실제 마우스 입력 되도록)
85 Client = Server.EndAccept(ar);
120 ControlMouse();
86 ad = new clientAcceptDelegate(getClientIP);
121 }
87 this.Invoke(ad);
88 Client.BeginReceive(getByte, 0, getByte.Length, SocketFlags.None, new 122 Client.BeginReceive(getByte, 0, getByte.Length, SocketFlags.None, new
AsyncCallback(CallBack_ReceiveMsg), Client);
AsyncCallback(CallBack_ReceiveMsg), Client);
123 }
89 }
124 else
90 catch (ObjectDisposedException e)
125 {
91 {
126 if (Server != null)
92 //MessageBox.Show(e.ToString());
127 Server.Close();
93 }
128 if (Client != null)
94 catch (SocketException se)
129 Client.Close();
95 {
130 ad = new clientAcceptDelegate(initClientIP);
96 //MessageBox.Show(se.ToString());
131 this.Invoke(ad);
97 }
132 WaitingSocket();
98 catch (Exception e)
133 }
99 {
134 }
100 //MessageBox.Show(e.ToString());
135 catch (ObjectDisposedException obje)
101 }
136 {
102 }
137 }
138 catch (SocketException se)
139 {
140 }
141 catch (Exception e)
142 {
8
143 }
144 }
02
02
소스 코드
146 void WaitingSocket()
147 {
148 IPAddress serverIP = IPAddress.Any;
149 IPEndPoint serverEndPoint = new IPEndPoint(serverIP, serverPort);
150
151
152 try
153 {
154 Server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.
Tcp);
155 Server.Bind(serverEndPoint);
156 Server.Listen(10);
157
158 Server.BeginAccept(new AsyncCallback(AcceptReceiveCallback), Server);
159 }
160 catch (SocketException socketEx)
161 {
162 // MessageBox.Show("네트워크 에러입니다.₩n" + socketEx.ToString());
163 }
164 catch (Exception commonEx)
165 {
166 // MessageBox.Show("시스템 에러입니다.₩n" + commonEx.ToString());
167 }
168
169 }
9
02
실행 화면
어플리케이션 실행 전
어플리케이션 실행 후
10
03
안드로이드 구동 원리
Process
Application
Activity
BroadCast
Receiver
Content
Provider
Service
12
03
13
03
실행 화면
로딩 화면
연결 전 화면
연결 뒤 화면
14