Új hozzászólás Aktív témák
-
G.A.
aktív tag
Üdv!
Egy TCP alapú adatküldő/fogadó alkalmazást szeretnék készíteni, ehhez írtam egy alap programot.
Jelenleg egy hibája van, csak 1 csomagot képes elküldeni, utána nem csinál semmit. Nem ír ki hibát, nem fagy le, de csak a programból való kilépés majd újraindítás után tud csomagot küldeni. Egyet.
A program 2-3 szálon fut, ami szerintem a hiba forrása.
public partial class Form1 : Form
{
Stream tcp_stream;
public Form1()
{
InitializeComponent();
}
public void TCP_Client_Init()
{
c_src_port = Convert.ToInt32(client_src_port.Text);
c_dst_port = Convert.ToInt32(client_dst_port.Text);
client_ips = Dns.GetHostAddresses(client_ip_address.Text);
TCP_Client = new TcpClient();
try
{
TCP_Client.Connect(client_ips[0], c_dst_port);
}
catch (Exception e)
{
Close_Client();
}
if(run_client)
{
tcp_stream = TCP_Client.GetStream();
TCP_Client.Client.ReceiveTimeout = 100;
TCP_Client.Client.SendTimeout = 100;
}
}
public void Run_TCP_Client_Listen()
{
bool client_rxd_packet = false;
while(run_client)
{
try
{
client_rxd_packet = true;
tcp_stream.Read(client_BUFFER, 0,256);
string value = Encoding.ASCII.GetString(client_BUFFER);
write_to_rxd_screen(value);
client_BUFFER = null;
}
catch (Exception e) { }
if(client_rxd_packet)
{
client_rxd_packet = false;
}
}
TCP_Client.Close();
}
public void Client_Send_TCP_String(string value)
{
//tcp_stream = TCP_Client.GetStream(); // HIBA <<-- ITT
client_BUFFER = Encoding.ASCII.GetBytes(value);
try
{
tcp_stream.Write(client_BUFFER, 0, client_BUFFER.Length);
}
catch (Exception e)
{
Close_Client();
}
}
}A hiba a Client_Send_TCP_String() funkció első sorában van.
Ha kihagyom a tcp_stream = TCP_Client.GetStream(); sort akkor 1 csomagot el tud küldeni, de többet nem.
Ha beírom, akkor ez a hibaüzenet jelenik meg:
An unhandled exception of type 'System.InvalidOperationException' occurred in System.dllAdditional information: A művelet nem engedélyezett nem csatlakoztatott szoftvercsatornákon.
A Client_Send_TCP_String() akkor fut le, amikor a Send gombra kattintok (ezt kihagytam a fenti kódból).
A Run_TCP_Client_Listen() viszont egy másik szálon fut.Ha jól értelmeztem a hibakódot, akkor a gondom az, hogy a tcp_stream-et 2 szálon egy időben használnám. A tcp_stream.Read()-nél, ill. a tcp_stream.Write()-nál.
Ezt valamilyen invoke (módszer/funkció)-val lehetne megoldani? Hogyan?
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Docker konténerizálás
- Elektromos autók - motorok
- Samsung Galaxy Felhasználók OFF topicja
- Fejhallgató erősítő és DAC topik
- exHWSW - Értünk mindenhez IS
- Milyen TV-t vegyek?
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Ventilátorok - Ház, CPU (borda, radiátor), VGA
- Okos Otthon / Smart Home
- BestBuy topik
- További aktív témák...
- Dell Inspiron 3593 15,6 Fullhd i7 16Gb SSD256Gb HDD1TB Win11pro
- Újszerű bivaly Lenovo Thinkpad T16 gen3 (13.gen Core Ultra 7 32Gb DDR5 1 Tb SSD) MAGYAR 30 hó GARI!
- Bivaly Lenovo T14 gen5 (Core Ultra 7 32Gb DDR5 1 Tb SSD) laptopom eladó 30 hónap gyártói garanciával
- Bomba ár! Dell Latitude 3410 - i3-10110U I 8GB I 256SSD I HDMI I 13,3" FHD Touch I Cam I W11 I Gari
- Bomba ár! Dell Latitude E5550 - i5-5GEN I 8GB I 128SSD I 15,6" FHD Touch I HDMI I W10 I Cam I Gari!
- Intel Core i5 3470 confidential Ivy bridge Quad Core
- BESZÁMÍTÁS! AMD Ryzen 7 5800X3D 8 mag 16 szál processzor garanciával hibátlan működéssel
- Apple iPhone 13 Mini 128GB /Kártyafüggetlen / 12Hó Garancia / 99% akku
- GYÖNYÖRŰ iPhone 13 mini 128GB Starlight -1 ÉV GARANCIA - Kártyafüggetlen, MS3133, 95% Akkumulátor
- Bomba ár! Dell Latitude 3340 - i3-4GEN I 4GB I 500GB I 13,3" HD I HDMI I Cam I W10 I Garancia!
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest

