//이미지 수신 이벤트 핸들러 void img_sever_RecvedImage(object sender, RecvImageEventArgs e) { if (RecvedImage != null) //이미지 수신 이벤트 구독자가 있을 때 { RecvedImage(this, e); //이미지 수신 이벤트 게시(By Pass) } }
void Singleton_RecvImageEventHandler(object sender, RecvImageEventArgs e) { if (check == false) { Controller.Singleton.StartEventClient(); check = true; csize = e.Image.Size; } pbox_remote.Image = e.Image; }
void Receive(Socket dosock) { byte[] lbuf = new byte[4]; //이미지 길이를 수신할 버퍼 dosock.Receive(lbuf); //이미지 길이 수신 int len = BitConverter.ToInt32(lbuf, 0); //수신한 버퍼의 내용을 정수로 변환 byte[] buffer = new byte[len]; //이미지 길이만큼의 버퍼 생성 int trans = 0; while (trans < len)//수신할 이미지 데이터가 남아있으면 { trans += dosock.Receive(buffer, trans, len - trans, SocketFlags.None); //이미지 수신 } if (RecvedImage != null) //이미지 수신 이벤트가 존재하면 { //이미지 수신 이벤트 발생 IPEndPoint iep = dosock.RemoteEndPoint as IPEndPoint; RecvImageEventArgs e = new RecvImageEventArgs(iep, ConvertBitmap(buffer)); RecvedImage(this, e); } dosock.Close();//소켓 닫기 }