2011-01-14 11 views
4

나는 VB.NetFiletransfer 응용 프로그램 및

파일의 크기는 다를에서 filetransfer 응용 프로그램을 개발하고 있어요,하지만 GB를 10 위까지 얻을 수 있습니다.

이미 채팅 앱을 테스트로 만듭니다.

클라이언트 측에서는이 코드를 실행하여 서버에 연결합니다.

Dim clientSocket As New System.Net.Sockets.TcpClient() 
Dim serverStream As NetworkStream 
clientSocket.Connect("127.0.0.1", 80) 

파일 전송에도 사용할 수 있습니까?

방화벽을 통해 앱을 작동시키고 싶습니다.

포트 80을 통과하기 위해 클라이언트에서 나가는 데이터가 필요하다고 생각합니다. 서버에서 다른 포트 (예 : 8888)에서 데이터를 수신 할 수 있기를 원합니다. 이것이 가능한가?

그리고 마지막 질문입니다. TCP 또는 UDP 목적으로 어떤 프로토콜을 사용해야합니까? 세 -에 - 하나의 질문 : 저를 도와 주셔서

감사에 대한

죄송합니다.

답변

6

전송 파일 : 예. 신뢰할 수있는 네트워크 스트림을 사용하여 파일을 전송할 수 있습니다. 적어도 그 파일의 데이터. 파일 시스템 관리를해야합니다 (올바른 폴더에 대상 파일을 만드는 등).

TCP/UDP : TCP/UDP : 인터넷을 통해 많은 양의 데이터를 전송하려면 안정성과 흐름 제어가 필요하므로 TCP를 사용하는 것이 좋습니다. 또한 주문형 전달 및 오류 감지와 같은 TCP의 다른 기능이 손상되지 않습니다. UDP를 사용한다면 많은 시간을 낭비하게 될 것입니다.

방화벽 : 응용 프로그램의 클라이언트 측 방화벽은 실제로 매우 엄격하지 않고 나가는 HTTP 연결 만 허용하지 않는 한 문제가 없어야합니다. 그러나 서버 포트는 인터넷에서 액세스 할 수 있어야합니다. 즉, 공용 IP 및 선택한 포트로 들어오는 연결 요청이 서버의 선택된 포트로 전달되도록 서버 측 네트워크를 구성해야합니다. 자세한 정보는 "포트 포워딩"또는 "포트 NAT"를 참조하십시오. 불가능하지는 않다면 방화벽과 NAT를 양면에서 우회하는 것이 훨씬 더 어렵습니다. 시도하지 마십시오.

+6

+1 사용할 수있는 좋은 .NET 래퍼가있다을 사용하면 윈도우에있는 가정; 하지만 나는 TCP를 사용하는 것이 훨씬 더 강력해야한다고 생각한다. 파일 전송의 경우 TCP는 ** ** 정답입니다. –

+0

그것은 기업 환경을위한 것입니다. 따라서 HTTP 만 허용 될 수 있습니다. 기업 방화벽/프록시를 생각해보십시오. +1 답변을 지금까지 :)하지만 나는 서버 쪽에서 포트를 열 수 있어요. 현재 teher는 웹 서비스 실행 (포트 80)입니다. – PeeHaa

1

매우 큰 파일을 전송하려면 작은 덩어리로 나누어야합니다. 이렇게하면 네트워크 오류 후 재개 할 수있는 응용 프로그램을 설정할 수 있습니다. 이러한 이유 때문에 많은 사람들이 당신의 전송 프로토콜을 위해 TCP를 선택하기를 원합니다. UDP는 TCP보다 빠르지 만 안전한 데이터 전송을 위해 필요한 오류 감지 및 수정 기능은 없습니다.

다음은 클라이언트 및 서버 관점 모두에서 큰 파일을 전송하는 방법에 대한 C# 기사입니다. 이것이 당신이 찾고있는 것이라면, 코드를 VB.NET으로 번역하면됩니다 (번역사가 자동으로 번역 작업을 수행 할 수 있음).

http://codetechnic.blogspot.com/2009/02/sending-large-files-over-tcpip.html

기본적 코드 바이트 배열을 통해 파일을 변환하고, 네트워크/인터넷을 통해 전송한다. 사용하는 포트를 선택할 수 있기 때문에 호스트 할 때 방화벽에 문제가 없습니다. 클라이언트 측에서는 클라이언트가 연결을 초기화 할 때 아웃 바운드 초기화가되므로 문제없이 네트워크 밖으로 나갈 수 있습니다.

+0

나는 약간 재 작성이있는 것처럼 보인다 :) 고마워. – PeeHaa

관련 문제