1. 유튜브 동영상 강의
2. 원격 제어 - 화면 수신 이벤트
이미지 수신 서버에서는 이미지를 수신할 때마다 폼에 이를 알려주어야 합니다. 이 부분을 위해 이벤트 처리를 할 것입니다. 먼저 이미지를 수신하였을 때 이벤트를 처리하기 위해 대리자와 이벤트 인자 클래스를 정의합시다. RecvImageEventArgs 이름의 클래스를 추가하세요.
public class RecvImageEventArgs : EventArgs
{
상대 IPEndPoint를 가져오기 할 수 있는 속성을 제공합시다.
public IPEndPoint IPEndPoint
{
get;
private set;
}
상대측 IP 주소 개체와 IP 주소 문자열과 포트 정보를 가져오기 할 수 있는 속성도 제공합시다.
public IPAddress IPAddress
{
get
{
return IPEndPoint.Address;
}
}
public string IPAddressStr
{
get
{
return IPAddress.ToString();
}
}
public int Port
{
get
{
return IPEndPoint.Port;
}
}
이미지 개체와 이미지 크기에 관한 정보도 가져오기 할 수 있는 속성을 제공합시다.
public Image Image
{
get;
private set;
}
public Size Size
{
get
{
return Image.Size;
}
}
public int Width
{
get
{
return Image.Width;
}
}
public int Height
{
get
{
return Image.Height;
}
}
생성자에서는 상대 IPEndPoint 정보와 이미지 개체를 입력 인자로 받아 속성을 설정합니다.
internal RecvImageEventArgs(IPEndPoint remote_iep, Image image)
{
IPEndPoint = remote_iep;
Image = image;
}
ToString 메서드를 재정의하여 상대측 IP 정보와 이미지의 폭과 높이를 문자열로 형성하여 제공합시다.
public override string ToString()
{
return string.Format("IP:{0} width:{1} height:{1}", IPAddressStr, Width, Height);
}
}
이미지를 수신할 때 처리를 위한 대리자를 정의합시다.
public delegate void RecvImageEventHandler(object sender, RecvImageEventArgs e);
다음은 이번 실습에서 작성한 소스 코드입니다.
//RecvImageEventArgs.cs
using System;
using System.Net;
using System.Drawing;
namespace 원격제어기
{
/// <summary>
/// 이미지 수신 이벤트 인자 클래스
/// </summary>
public class RecvImageEventArgs : EventArgs
{
/// <summary>
/// IP 단말 - 가져오기
/// </summary>
public IPEndPoint IPEndPoint
{
get;
private set;
}
/// <summary>
/// IP 주소 - 가져오기
/// </summary>
public IPAddress IPAddress
{
get
{
return IPEndPoint.Address;
}
}
/// <summary>
/// IP 주소 문자열 - 가져오기
/// </summary>
public string IPAddressStr
{
get
{
return IPAddress.ToString();
}
}
/// <summary>
/// 포트 - 가져오기
/// </summary>
public int Port
{
get
{
return IPEndPoint.Port;
}
}
/// <summary>
/// 이미지 - 가져오기
/// </summary>
public Image Image
{
get;
private set;
}
/// <summary>
/// 이미지 크기 - 가져오기
/// </summary>
public Size Size
{
get
{
return Image.Size;
}
}
/// <summary>
/// 이미지 폭 - 가져오기
/// </summary>
public int Width
{
get
{
return Image.Width;
}
}
/// <summary>
/// 이미지 높이 - 가져오기
/// </summary>
public int Height
{
get
{
return Image.Height;
}
}
internal RecvImageEventArgs(IPEndPoint remote_iep, Image image)
{
IPEndPoint = remote_iep;
Image = image;
}
/// <summary>
/// ToString 메서드
/// </summary>
/// <returns>IP주소 및 이미지 크기를 문자열로 반환</returns>
public override string ToString()
{
return string.Format("IP:{0} width:{1} height:{1}",
IPAddressStr, Width, Height);
}
}
/// <summary>
/// 이미지 수신 처리를 위한 대리자
/// </summary>
/// <param name="sender">이벤트 통보 개체(게시자)</param>
/// <param name="e">이벤트 처리 인자</param>
public delegate void RecvImageEventHandler(object sender, RecvImageEventArgs e);
}
'프로젝트 > C# 원격제어 프로그램' 카테고리의 다른 글
[C#] 원격 제어 프로그램 4. 원격 제어 요청 클라이언트 (0) | 2024.01.08 |
---|---|
[C#] 원격 제어 프로그램 5. 원격 제어 요청 수신 이벤트 (0) | 2024.01.08 |
[C#] 원격 제어 프로그램 6. 원격 제어 요청 수신 서버 (0) | 2024.01.08 |
[C#] 원격 제어 프로그램 7. 원격 제어 – 화면 전송 (0) | 2024.01.08 |
[C#] 원격 제어 프로그램 9. 원격 제어 – 화면 수신 서버 (0) | 2024.01.08 |
[C#] 원격 제어 프로그램 11. 원격 제어 이벤트 수신 버퍼 분석 (0) | 2024.01.08 |
[C#] 원격 제어 프로그램 12. 원격 제어 이벤트 수신 이벤트 (0) | 2024.01.08 |
[C#] 원격 제어 프로그램 13. 원격 제어 이벤트 수신 서버 (1) | 2024.01.08 |