Visualizzazione dei risultati da 1 a 2 su 2

Discussione: [vb 2010]

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2011
    Messaggi
    44

    [vb 2010]

    Ciao a tutti, ultimamente sto realizzando un programmino, una piccola chat con un server e con un client, e funziona. Solo che la volevo trasformare solo un po' più chat, quindi vorrei chiedere a voi cosa ne pensate e che cosa potrei mettere per far sì che quello che ho in mente venga espresso in codice xD

    Allora.. prima di tutto volevo fare che più utenti possono collegarsi alla chat e non solo uno per volta, in modo che la chat divenga più utile nel caso si vogliono esprimere opinioni con più persone, la seconda modifica era quella di far si che ogni utente può entrare in chat con un proprio nome, anche se deve inserirlo ogni volta non importa, poi per ultimo far si che tutti gli utenti possano vedere le cose che scrivono gli altri ma anche che leggano le proprie, perché in quello che ho fatto io il messaggio inserito dall'Utente1 viene visualizzato solo dall'Utente2 e non dall'Utente1 e questo può causare difficoltà, perchè magari ho scritto una cosa sbagliata ma non me ne accorgo nemmeno.

    Detto ciò vi posto l'immagine del programmino Server e quello client, con i relativi codici:

    Server Code:
    codice:
    Imports System.Net.Sockets Imports System.Text.UTF8Encoding Public Class Form1 Dim ascoltatore As TcpListener Dim cliente As TcpClient Dim flusso As NetworkStream Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ascoltatore = New TcpListener(8888) ascoltatore.Start() Timer2.Start() TextBox2.Text = TextBox2.Text & "Sono in attesa di qualcuno..." & vbCrLf End Sub Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick If ascoltatore.Pending() Then Timer2.Stop() cliente = ascoltatore.AcceptTcpClient() ascoltatore.Stop() flusso = cliente.GetStream() Timer1.Start() TextBox2.Text = TextBox2.Text & "Si è connesso un utente in data " & Now() & vbCrLf End If End Sub Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick If cliente.Available > 0 Then Dim temporaneo(cliente.Available - 1) As Byte flusso.Read(temporaneo, 0, temporaneo.Length) Dim testo As String = UTF8.GetString(temporaneo) TextBox2.Text = TextBox2.Text & testo & vbCrLf End If End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim temporaneo() As Byte = UTF8.GetBytes(TextBox1.Text) flusso.Write(temporaneo, 0, temporaneo.Length) TextBox1.Text = "" TextBox1.Focus() End Sub End Class


    Client Code:
    codice:
    Imports System.Net.Sockets Imports System.Text.UTF8Encoding Public Class Form1 Dim cliente As TcpClient Dim flusso As NetworkStream Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim indirizzo As Net.IPAddress Net.IPAddress.TryParse(TextBox3.Text, indirizzo) cliente = New TcpClient cliente.Connect(indirizzo, 8888) If cliente.Connected Then TextBox2.Text = TextBox2.Text & "Connessione Accettata, ora si puo chattare" & vbCrLf flusso = cliente.GetStream() Timer1.Start() Else TextBox2.Text = TextBox2.Text & "Connessione Fallita" & vbCrLf End If End Sub Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick If cliente.Available > 0 Then Dim temporaneo(cliente.Available - 1) As Byte flusso.Read(temporaneo, 0, temporaneo.Length) Dim testo As String = UTF8.GetString(temporaneo) TextBox2.Text = TextBox2.Text & testo & vbCrLf End If End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim temporaneo() As Byte = UTF8.GetBytes(TextBox1.Text) flusso.Write(temporaneo, 0, temporaneo.Length) TextBox1.Text = "" TextBox1.Focus() End Sub Private Sub LinkLabel1_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles LinkLabel1.LinkClicked System.Diagnostics.Process.Start("http://www.whatismyip.com/") End Sub Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged End Sub End Class
    A presto

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    Se già non lo hai fatto, dai una letta al Regolamento interno.
    Il titolo della discussione è una parte essenziale della discussione stessa: ogni discussione deve avere un titolo.

    Inoltre, quando si posta il codice, esso dovrebbe essere sì incluso negli appositi tag CODE, ma non tutto in una riga... in buona sostanza, non usare la dialog box del pulsante per incollare tutto il codice, ma apri il tag a mano nel corpo del messaggio, incolla il codice e chiudi il tag a mano. Altrimenti è del tutto inutile.

    Infine, non si capisce esattamente ciò che vuoi.
    Se cerchi qualcuno che apporti le modifiche al codice in modo da ottenere ciò che hai descritto, stai in pratica cercando qualcuno che svolga il lavoro per te. In questo caso, il forum in cui postare è "Offro Lavoro / Collaborazione".

    Se, al contrario, stai cercando dei suggerimenti o hai del codice che non funziona, allora posta il codice che non funziona o indica bene il tipo di problema che hai.

    Devo chiudere questa discussione.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.