Socket Programlamada Sorun C#
-
Merhaba Arkadaşlar, Alttaki Server'ımı çalıştırdığımda ram de şişme yapıyor ve cpu yu çok kasıyor neden acaba?
Socket _Socket;
byte[] _GelenByte = new byte[9999999];
public FrmServer()
{
InitializeComponent();
}
private void FrmServer_Load(object sender, EventArgs e)
{
_Socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
_Socket.Bind(new IPEndPoint(IPAddress.Any, 4422));
_Socket.Listen(100);
_Socket.BeginAccept(new AsyncCallback(Connect), null);
}
void Connect(IAsyncResult ia)
{
Socket _TempSck = _Socket.EndAccept(ia);
_TempSck.BeginReceive(_GelenByte, 0, _GelenByte.Length, 0, new AsyncCallback(DataRecieve), _TempSck);
_Socket.BeginAccept(new AsyncCallback(Connect), null);
}
void DataRecieve(IAsyncResult ia)
{
Socket DataSck = (Socket)ia.AsyncState;
int GelenByteUzunluk = _Socket.EndReceive(ia);
if (_GelenByte.Length>0)
{
byte[] _FixedByte = new byte[GelenByteUzunluk];
Array.Copy(_GelenByte, _FixedByte, _FixedByte.Length);
pictureBox1.BackgroundImage = Image.FromStream(new MemoryStream(_GelenByte));
}
}
-
hocam böyle buffer size mi olur Allah aşkına :)
http://www.youtube.com/watch?v=cG5q4XdYIUI
http://www.youtube.com/watch?v=dkr2pUnzOgI
http://www.youtube.com/watch?v=pCVwZFlor5g
buradaki videoyu izle.. senin mantığa benzer yapıyor iyice öğrenmeye çalış öncelikle..
Bundan sonraki aşama da task ları kullanarak yapabilirsin.
http://codereview.stackexchange.com/questions/31143/performant-c-socket-server
http://blogs.msdn.com/b/pfxteam/archive/2011/12/15/10248293.aspx
bir de güncel hali var mı bilmiyorum ama
http://www.amazon.fr/TCP-IP-Sockets-Practical-Programmers/dp/0124660517
bu kitaba bakabilirsin pdf ini bulup
-
Hocam simdi baktim da gercekten baya buyukmus benim bytesize im :) adam guzel anlatiyor biraz baktim videoya kalanini iste izlerim bu arada eline saglik :)
esinti tarafından 29/May/15 07:08 tarihinde düzenlenmiştir
