Programmering 2 Omvandling av strängar

Permalänk

Programmering 2 TCP

Hej, behöver hjälp med en avdelningsrapport, har letat i boken, på nätet och testat att se om det finns några fel med F10 men allting verkar funka, det som jag undrar över dock är varför programmet skriver ut Bok-[]matris när jag trycker på ladda lista?

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Net; using System.Net.Sockets; using System.IO; namespace Avdelningsrapport { public partial class Form1 : Form { TcpClient klient = new TcpClient(); int port = 12345; List<Bok> bokLista = new List<Bok>(); public Form1() { InitializeComponent(); klient.NoDelay = true; if (File.Exists("texter.txt")) { StreamReader reader = new StreamReader("texter.txt", Encoding.UTF7, false); string item = ""; while ((item = reader.ReadLine()) != null) { string[] vektor = item.Split(new string[] { "###" }, StringSplitOptions.None); string titel = vektor[0]; string författare = vektor[1]; string typ = vektor[2]; } reader.Close(); } else { MessageBox.Show("Filen hittades tyvärr inte."); } } public async void StartaMottag() { try { IPAddress adress = IPAddress.Parse("127.0.0.1"); await klient.ConnectAsync(adress, port); buttonServer.Enabled = false; } catch (Exception error) { MessageBox.Show(error.Message, Text); return; } } public async void StartaLäsare(string message) { byte[] utData = Encoding.Unicode.GetBytes(message); try { await klient.GetStream().WriteAsync(utData, 0, utData.Length); } catch (Exception error) { MessageBox.Show(error.Message, Text); return; } } private void buttonServer_Click(object sender, EventArgs e) // Koppla till server { if (!klient.Connected) StartaMottag(); } private void LaddaLista_Click(object sender, EventArgs e) // Uppdatera listan med böcker från texter.txt filen { listBox.Items.Add(bokLista.ToArray()); } private void listBox_Click(object sender, EventArgs e) { if (bokLista.Count > 0) { if (listBox.SelectedItems.Count == 1) { StartaLäsare(listBox.Text.ToString()); bokLista.RemoveAt(listBox.SelectedIndex); listBox.Items.RemoveAt(listBox.SelectedIndex); } } } } public class Bok { public string titel; // Sparar titel public string författare; // Sparar författare public string typ; // Spvarar boktyp public Bok(string titel, string författare) // Vår konstruktor { this.titel = titel; this.författare = författare; } } // Bokens underklasser; roman, tidskrit och novellsamling public class Roman : Bok { public Roman(string titel, string författare) : base(titel, författare) { typ = "Roman"; } public override string ToString() { return " " + "\"" + titel + "\"" + " " + "av" + " " + författare + "." + " " + "(" + typ + ")"; } } public class Tidskrift : Bok { public Tidskrift(string titel, string författare) : base(titel, författare) { typ = "Tidskrift"; } public override string ToString() { return " " + "\"" + titel + "\"" + " " + "av" + " " + författare + "." + " " + "(" + typ + ")"; } } public class Novellsamling : Bok { public Novellsamling(string titel, string författare) : base(titel, författare) { typ = "Novellsamling"; } public override string ToString() { return " " + "\"" + titel + "\"" + " " + "av" + " " + författare + "." + " " + "(" + typ + ")"; } } }

Använder VS i windows 10

Permalänk

Det funkar nu, skrev in

Random random = new Random(); listBox.Items.Add(bokLista[random.Next(bokLista.Count)].ToString());

i laddalista metoden

Permalänk

TCP - spel

Hej, jag försöker nu skapa ett program som innehåller en PictureBox + en bild på ett jetflygplan och ett program som har knapparna (up, ner, vänster, höger) men problemet är att alla andra knappar funkar utom min Ner knapp (btnNer.Bottom += 5;) funkar inte. Varför? Jag har kollat upp felmeddelandet CS0200 och försökt göra det men programmet klagar ändå. Använder VS i windows 10, .NET framework

CS0200: Property or indexer cannot be assigned to “--” it is read only

Skärmbild:
https://imgur.com/cxBsBVm

Permalänk
Medlem
Skrivet av Field_trip:

Hej, jag försöker nu skapa ett program som innehåller en PictureBox + en bild på ett jetflygplan och ett program som har knapparna (up, ner, vänster, höger) men problemet är att alla andra knappar funkar utom min Ner knapp (btnNer.Bottom += 5;) funkar inte. Varför? Jag har kollat upp felmeddelandet CS0200 och försökt göra det men programmet klagar ändå. Använder VS i windows 10, .NET framework

CS0200: Property or indexer cannot be assigned to “--” it is read only

Skärmbild:
https://imgur.com/cxBsBVm

Förmodligen detta du bör ta i beaktan:
https://docs.microsoft.com/en-us/dotnet/api/system.windows.fo...

"Remarks
The value of this property is equal to the sum of the Top property value, and the Height property value.

The Bottom property is a read-only property. You can manipulate this property value by changing the value of the Top or Height properties or calling the SetBounds, SetBoundsCore, UpdateBounds, or SetClientSizeCore methods."

Visa signatur

Desktop: Ryzen 5800X3D || MSI X570S Edge Max Wifi || Sapphire Pulse RX 7900 XTX || Gskill Trident Z 3600 64GB || Kingston KC3000 2TB || Samsung 970 EVO Plus 2TB || Samsung 960 Pro 1TB || Fractal Torrent || Asus PG42UQ 4K OLED
Proxmox server: Ryzen 5900X || Asrock Rack X570D4I-2T || Kingston 64GB ECC || WD Red SN700 1TB || Blandning av WD Red / Seagate Ironwolf för lagring || Fractal Node 304

Permalänk

Ah tack. Jag missade det.

Nu vill jag få knapparna i mitt klient program att styra planet i mitt server program. Just nu när jag trycker på knapparna så rör sig knapparna i klient programmet. Hur kan jag få planet att röra på sig när jag trycker ner respektive knapp? Ska jag skriva in detta under varje knapp i mitt klient program?

IPAddress adress = IPAddress.Parse(tbxIPAdress.Text); klient = new TcpClient(); klient.NoDelay = true; klient.Connect(adress, port);

Just nu ser det ut så här:
https://imgur.com/lluqREg

Permalänk
Medlem
Skrivet av Field_trip:

Ah tack. Jag missade det.

Nu vill jag få knapparna i mitt klient program att styra planet i mitt server program. Just nu när jag trycker på knapparna så rör sig knapparna i klient programmet. Hur kan jag få planet att röra på sig när jag trycker ner respektive knapp? Ska jag skriva in detta under varje knapp i mitt klient program?

IPAddress adress = IPAddress.Parse(tbxIPAdress.Text); klient = new TcpClient(); klient.NoDelay = true; klient.Connect(adress, port);

Just nu ser det ut så här:
https://imgur.com/lluqREg

Vad har flyttande av element i gränssnittet med en TCP-anslutning att göra? Jag är nog inte med på frågan.

Visa signatur

Desktop: Ryzen 5800X3D || MSI X570S Edge Max Wifi || Sapphire Pulse RX 7900 XTX || Gskill Trident Z 3600 64GB || Kingston KC3000 2TB || Samsung 970 EVO Plus 2TB || Samsung 960 Pro 1TB || Fractal Torrent || Asus PG42UQ 4K OLED
Proxmox server: Ryzen 5900X || Asrock Rack X570D4I-2T || Kingston 64GB ECC || WD Red SN700 1TB || Blandning av WD Red / Seagate Ironwolf för lagring || Fractal Node 304

Permalänk

Boken kanske förklarar bättre

Bild från övningen i boken:
https://imgur.com/fHG5Cjk

Mitt server och klient program:
https://imgur.com/71w31gG

Jag förstår inte hur jag kan styra jet-flygplanet från mitt klient program

Permalänk
Medlem
Skrivet av Field_trip:

Boken kanske förklarar bättre

Bild från övningen i boken:
https://imgur.com/fHG5Cjk

Mitt server och klient program:
https://imgur.com/71w31gG

Jag förstår inte hur jag kan styra jet-flygplanet från mitt klient program

Antar att du vill skicka något via "klient" dvs din TcpClient när man trycker på knapparna?
Samt göra något med planet när det kommer data i "lyssnare" dvs din TcpListener.

Visa signatur

Desktop: Ryzen 5800X3D || MSI X570S Edge Max Wifi || Sapphire Pulse RX 7900 XTX || Gskill Trident Z 3600 64GB || Kingston KC3000 2TB || Samsung 970 EVO Plus 2TB || Samsung 960 Pro 1TB || Fractal Torrent || Asus PG42UQ 4K OLED
Proxmox server: Ryzen 5900X || Asrock Rack X570D4I-2T || Kingston 64GB ECC || WD Red SN700 1TB || Blandning av WD Red / Seagate Ironwolf för lagring || Fractal Node 304

Permalänk
Skrivet av evil penguin:

Antar att du vill skicka något via "klient" dvs din TcpClient när man trycker på knapparna?
Samt göra något med planet när det kommer data i "lyssnare" dvs din TcpListener.

Exakt

Permalänk

Kan jag åtminstone få tips hur jag får planet att styras med en knapp?

Permalänk
Medlem

Du har boken, något måste väl stå i den om hur du skickar data via din TCP-socket?

Skicka ett anrop till servern när du trycker på t.ex. vänster/höger/upp/ner med vilken riktning du vill förflytta planet i.

Användaren ansluter mot servern.
Användaren trycker på Vänster-knapp.
Ett anrop skickas från användaren till servern via anslutningen som skapats i steg 1.
Anropet innehåller den riktning som användaren vill förflytta planet i.
Servern kontrollerar riktningen och utför en förflyttning åt rätt håll.
Servern svarar eventuellt med ett meddelande om att kanten är nådd.

Ett tips inför framtida trådar: Bifoga inte en bild på koden. Klistra istället in koden inom [code] [/code]-taggarna så det blir lättare för andra att se vad som är fel/testa din kod.

Visa signatur

NZXT H510 Flow MSI B450 Tomahawk MAX
AMD Ryzen 5800X3D RX 7900XTX Kingston Fury 64GB

Permalänk
Moderator
Festpilot 2020, Antiallo

@Field_trip: Ett ämne, - En tråd.
Jag har nu sammanfogat alla dina "Programmering 2" trådar till en tråd.
Detta för att alla ska ha samma chans att synas i forumet och få hjälp.

Vänligen se över dina trådrubriker framöver. Framtida "Programmering 2/3/4" utan vidare beskrivande rubrik kommer raderas.

Visa signatur

 | PM:a Moderatorerna | Kontaktformuläret | Geeks Discord |
Testpilot, Skribent, Moderator & Geeks Gaming Huvudadmin