WebException: 基礎連接已關閉: 傳送時發生未預期的錯誤。 遠端主機已強制關閉一個現存的連線. 有時如果使用不允許的通訊協定,例如Server 只 ... ... <看更多>
「c# socket遠端主機已強制關閉一個現存的連線」的推薦目錄:
c# socket遠端主機已強制關閉一個現存的連線 在 Unable to write data to the transport connection: 远程主机强迫 ... 的推薦與評價
SocketException: 远程主机强迫关闭了一个现有的连接。 at System.Net.Sockets.NetworkStream.Write(Byte[] buffer, Int32 offset, Int32 size) ---. ... <看更多>
c# socket遠端主機已強制關閉一個現存的連線 在 [問題] 透過網路傳檔的問題- 看板C_Sharp 的推薦與評價
想寫個從手機上傳檔案到server的程式,
但是沒有要利用網頁的方式,所以自己試著寫個server&client的程式,
但是總是會卡在傳送的過程中,但是我不是C#的高手,
透過google和查書,都找不到問題是出在哪,
compiler都有過,都是就是不能傳成功,只要麻煩板上的高手了,
以下是我的程式:
//Server
using System;
using System.IO;
using System.Net;
using System.Net.Sockets;
namespace TCP_Server
{
class Program
{
static void Main(string[] args)
{
TcpListener tcplistener = new TcpListener(2300);
tcplistener.Start();
Console.WriteLine("從2300收取檔案");
Socket mysocket = tcplistener.AcceptSocket();
string filetarget = @"c:\test.3gp";
try
{
if (mysocket.Connected)
{
Console.WriteLine("連線成功");
NetworkStream myNetworkstream = new
NetworkStream(mysocket);
FileStream fout = File.OpenWrite(filetarget);
int lngbytes = 1024;
Byte[] myByte = new Byte[lngbytes];
while (myNetworkstream.DataAvailable)
{
myNetworkstream.Read(mybyte, 0, lngbytes);
fout.Write(mybyte, 0, myByte.Length);
}
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
System.Console.WriteLine();
}
}
}
//Client
using System;
using System.IO;
using System.Net;
using System.Net.Sockets;
namespace TCP_Clinet
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
TcpClient tcpclient = new TcpClient();
tcpclient.Connect("127.0.0.1", 2300);
NetworkStream myNetworkstream;
myNetworkstream = tcpclient.GetStream();
string filepath = @"c:\sample_50kbit.3gp";
if (myNetworkstream.CanWrite)
{
FileStream fs = File.Open(filepath, FileMode.OpenOrCreate,
FileAccess.Read);
Byte[] myByte = new Byte[4096];
int count = 0;
while ((count = fs.Read(myByte,0,4096)) != 0)
{
myNetworkstream.Write(myByte, 0, count);
}
fs.Close();
}
else
{
textBox1.Text = "no";
}
myNetworkstream.Flush();
myNetworkstream.Close();
}
}
}
紅色部分,則是程式出錯的地方,
訊息是:
錯誤的IOException未處理,
無法寫入資料至傳輸連接: 遠端主機已強制關閉一個現存的連線。
上google大神找到一些範例,我的寫法也差不多,
但是就是不能用,要麻煩板上的高手幫我找個問題在哪了Q_Q
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.116.177.86
... <看更多>