개발언어/C#
c# TCP 파일 전송 프로그램
1동민1
2020. 2. 28. 18:01
반응형
주요 소스 정리
Tcp 소켓 오픈 소스
private void TcpSocketOpen()
{
try
{
receiveSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPEndPoint endPoint = new IPEndPoint(IPAddress.Any, 2020); //2020포트의 서버를 연다.
receiveSocket.Bind(endPoint);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
Tcp 소켓 연결 소스
private void TcpSocketConnect()
{
if (conCheck) return; //연결 되어 있으면 재연결 안함
try
{
sendSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
sendSocket.Connect(IPAddress.Parse(textBox1.Text), 2020); //2020포트의 서버에 연결
//sendSocket.ReceiveTimeout = 5000;
conCheck = true;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
button2.Enabled = false;
}
}
Tcp 소켓 수신 대기 소스
private void Listen()
{
if (listenCheck) return; //연결 되어 있으면 재연결 안함
try
{
receiveSocket.Listen(20);
receiveSocket = receiveSocket.Accept();
listenThread = new Thread(Receive_Data); //실제 통신을 담당하는 쓰레드 생성
listenThread.Start();
listenCheck = true;
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
button3.Enabled = true;
if(listenCheck)
listenCheck = false;
}
}
RTP헤더는 추가하지 않았고
파일 이름 사이즈, 파일 이름, 파일 크기 <- 헤더로 사용하고
파일 내용물이 맨 뒤에 붙게 만들었다.
클라이언트 하나로 송수신이 가능하게 만들었고 같은 네트워크 대역대에 있는 컴퓨터만 연결 가능하다.
서버를 사용하면 데몬을 통해 송수신하면 될 것 같다.
내가 직접 만든거라 바이러스는 절대 없음.
반응형