|
|
@@ -27,11 +27,11 @@ type myType struct {
|
|
27
|
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
|
35
|
moscato *Moscato
|
|
36
|
36
|
}
|
|
37
|
37
|
|
|
|
@@ -40,8 +40,20 @@ type Args struct { // 매개변수
|
|
40
|
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
|
57
|
switch args.Kind {
|
|
46
|
58
|
|
|
47
|
59
|
case KSM:
|
|
|
@@ -213,7 +225,20 @@ func (moscato *Moscato) Receive(msg MsgUnit) (MsgUnit, error) {
|
|
213
|
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
|
242
|
func (moscato *Moscato) Send2MS(ipaddress string, msg MsgUnit) {
|
|
218
|
243
|
client, err := rpc.Dial("tcp", ipaddress+":8150")
|
|
219
|
244
|
if err != nil {
|
|
|
@@ -279,25 +304,21 @@ func (moscato *Moscato) Run() {
|
|
279
|
304
|
}
|
|
280
|
305
|
|
|
281
|
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
|
315
|
if err1 != nil {
|
|
286
|
316
|
log.Fatal(fmt.Sprintf("Unable to listen on given port: %s", err1))
|
|
287
|
317
|
}
|
|
288
|
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
|
320
|
for {
|
|
296
|
321
|
conn, _ := l.Accept()
|
|
297
|
322
|
go rpc.ServeConn(conn)
|
|
298
|
323
|
}
|
|
299
|
|
- /*for {
|
|
300
|
|
- conn, _ := l2.Accept()
|
|
301
|
|
- go rpc.ServeConn(conn)
|
|
302
|
|
- }*/
|
|
303
|
|
-}
|
|
|
324
|
+}
|