Przeglądaj źródła

[plus]comment

master
jaehoon_kim 4 lat temu
rodzic
commit
b5701587f8
1 zmienionych plików z 40 dodań i 19 usunięć
  1. 40
    19
      src/broker/modules/init.go

+ 40
- 19
src/broker/modules/init.go Wyświetl plik

27
 	err     error
27
 	err     error
28
 }
28
 }
29
 
29
 
30
-type Reply struct {
31
-	CompleteLog string
30
+type Reply struct { //RPC리턴값
31
+	CompleteLog string //제대로 받았는지 확인하는 로그
32
 }
32
 }
33
 
33
 
34
-type Receiver struct {
34
+type Receiver struct { //RPC 서버에 등록하기 위한 변수
35
 	moscato *Moscato
35
 	moscato *Moscato
36
 }
36
 }
37
 
37
 
40
 	Kind    int
40
 	Kind    int
41
 }
41
 }
42
 
42
 
43
-func (receiver Receiver) MmReceive(args Args, reply *Reply) error {
44
-	// 메세지 별로 나눠서 언마샬하면 됨
43
+/*
44
+MS→MM
45
+
46
+-MM 실행되면 MM서버는 열려있음(MS은 자동으로 Client)(포트 8150)
47
+
48
+-Send2MM 호출 → rpc call로 MmReceive호출해서 MM로 전달(json형식)
49
+
50
+-MmReceive에서 msgType 검사 후 그것에 맞게 msgUnit으로 MM의 Receive로 보냄
51
+
52
+-MM의 Receive에서 해당 Message를 처리
53
+ */
54
+
55
+func (receiver Receiver) MmReceive(args Args, reply *Reply) error {//
56
+	// 메세지 별로 나눠서 언마샬
45
 	switch args.Kind {
57
 	switch args.Kind {
46
 
58
 
47
 	case KSM:
59
 	case KSM:
213
 	return msg, nil
225
 	return msg, nil
214
 }
226
 }
215
 
227
 
216
-//Ms로 보낼때 쓸 함수
228
+//MS로 보낼때 쓸 함수
229
+
230
+/*
231
+MM→MS
232
+
233
+-MS 실행되면 MS서버는 열려있음(MM은 자동으로 Client)(포트 8160)
234
+
235
+-Send2MS 호출 → rpc call로 MsReceive호출해서 MS로 전달(json형식)
236
+
237
+-MsReceive에서 msgType 검사 후 그것에 맞게 msgUnit으로 MS의 Receive로 보냄
238
+
239
+-MS의 Receive에서 해당 Message를 처리
240
+ */
241
+
217
 func (moscato *Moscato) Send2MS(ipaddress string, msg MsgUnit) {
242
 func (moscato *Moscato) Send2MS(ipaddress string, msg MsgUnit) {
218
 	client, err := rpc.Dial("tcp", ipaddress+":8150")
243
 	client, err := rpc.Dial("tcp", ipaddress+":8150")
219
 	if err != nil {
244
 	if err != nil {
279
 }
304
 }
280
 
305
 
281
 func Listen() {
306
 func Listen() {
282
-	//l, err := net.Listen("tcp", fmt.Sprintf(":%v", 8160))
283
-	l, err1 := net.Listen("tcp", ":8160") //MS로 부터 받는거
284
-	//l2, err2 := net.Listen("tcp","0.0.0.0:8150")
307
+	/*
308
+	MS→MM일때 ⇒ port : 8160으로 열기
309
+
310
+	(MM이 Server, MS가 Client)
311
+	*/
312
+
313
+	l, err1 := net.Listen("tcp", ":8160")
314
+
285
 	if err1 != nil {
315
 	if err1 != nil {
286
 		log.Fatal(fmt.Sprintf("Unable to listen on given port: %s", err1))
316
 		log.Fatal(fmt.Sprintf("Unable to listen on given port: %s", err1))
287
 	}
317
 	}
288
 	defer l.Close()
318
 	defer l.Close()
289
 
319
 
290
-	/*if err2 != nil {
291
-		log.Fatal(fmt.Sprintf("Unable to listen on given port: %s", err2))
292
-	}
293
-	defer l2.Close()*/
294
-
295
 	for {
320
 	for {
296
 		conn, _ := l.Accept()
321
 		conn, _ := l.Accept()
297
 		go rpc.ServeConn(conn)
322
 		go rpc.ServeConn(conn)
298
 	}
323
 	}
299
-	/*for {
300
-		conn, _ := l2.Accept()
301
-		go rpc.ServeConn(conn)
302
-	}*/
303
-}
324
+}

Ładowanie…
Anuluj
Zapisz