Kaynağa Gözat

[fin]RPC & [plus]Send2MS

master
jaehoon_kim 4 yıl önce
ebeveyn
işleme
a5f81d4df2
1 değiştirilmiş dosya ile 38 ekleme ve 13 silme
  1. 38
    13
      src/broker/modules/init.go

+ 38
- 13
src/broker/modules/init.go Dosyayı Görüntüle

@@ -39,24 +39,17 @@ type Receiver struct {
39 39
 	moscato *Moscato
40 40
 }
41 41
 
42
-//MS에서 보내는거-rpc call 사용
43
-/*func (l *Listner)MM_Receive(msg MsgUnit, reply *Reply)error{
44
-	reply.ReceiveMsg=msg
45
-
46
-	return nil
47
-}*/
48
-
49 42
 type Args struct { // 매개변수
50 43
 	JsonMsg []byte
51 44
 	Kind    int
52 45
 }
53 46
 
54
-func (receiver Receiver) MM_Receive(args Args, reply *Reply) error {
47
+func (receiver Receiver) MmReceive(args Args, reply *Reply) error {
55 48
 	// 메세지 별로 나눠서 언마샬하면 됨
56 49
 	switch args.Kind {
57 50
 
58 51
 	case KSM:
59
-		var msg KeyGenMsg
52
+		var msg KeyShareMsg
60 53
 		err:=json.Unmarshal(args.JsonMsg,&msg)
61 54
 		if err != nil {
62 55
 			return err
@@ -159,6 +152,29 @@ func (moscato *Moscato) Receive(msg MsgUnit) (MsgUnit, error) {
159 152
 	return msg, nil
160 153
 }
161 154
 
155
+//Ms로 보낼때 쓸 함수
156
+func (moscato *Moscato)Send2MS(ipaddress string,msg MsgUnit){
157
+	client,err:=rpc.Dial("tcp",ipaddress+":8150")
158
+	if err!=nil{
159
+		fmt.Println(err)
160
+		return
161
+	}
162
+	defer client.Close()
163
+
164
+	reply:=new(Reply)
165
+	jmsg,_:=msg.ConvertToJson()
166
+	args:=Args{
167
+		JsonMsg: jmsg,
168
+		Kind:    msg.CheckType(),
169
+	}
170
+	err:=client.Call("receiver.MsReceive",args,reply)
171
+	if err !=nil{
172
+		fmt.Println(err)
173
+		return
174
+	}
175
+	fmt.Println(reply.CompleteLog)//잘 받았는지 확인 해줌
176
+}
177
+
162 178
 func (moscato *Moscato) Run() {
163 179
 	//모스카토 구조체 변수 초기화
164 180
 	receiver := Receiver{moscato: moscato}
@@ -180,15 +196,24 @@ func (moscato *Moscato) Run() {
180 196
 
181 197
 func Listen() {
182 198
 	//l, err := net.Listen("tcp", fmt.Sprintf(":%v", 8160))
183
-	l, err := net.Listen("tcp", "0.0.0.0:8160")
199
+	l, err1 := net.Listen("tcp", ":8160")//MS로 부터 받는거
200
+	//l2, err2 := net.Listen("tcp","0.0.0.0:8150")
201
+	if err1 != nil {
202
+		log.Fatal(fmt.Sprintf("Unable to listen on given port: %s", err1))
203
+	}
204
+	/*defer l1.Close()
184 205
 
185
-	if err != nil {
186
-		log.Fatal(fmt.Sprintf("Unable to listen on given port: %s", err))
206
+	if err2 != nil {
207
+		log.Fatal(fmt.Sprintf("Unable to listen on given port: %s", err2))
187 208
 	}
188
-	defer l.Close()
209
+	defer l2.Close()*/
189 210
 
190 211
 	for {
191 212
 		conn, _ := l.Accept()
192 213
 		go rpc.ServeConn(conn)
193 214
 	}
215
+	/*for {
216
+		conn, _ := l2.Accept()
217
+		go rpc.ServeConn(conn)
218
+	}*/
194 219
 }

Loading…
İptal
Kaydet