Visualizzazione dei risultati da 1 a 2 su 2

Discussione: Socket C#

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    77

    Socket C#

    salve ragazzi vi posto un codice che ho creato girando 1 pò sulla rete ... in pratica il client manda al server 1 messaggio e poi chiude la connessione ora apportando qualche modifica vorrei che si potesse inviare + di un messaggio solo che quando sul client analizzo la stringa per dirgli se è = a "Close" chiudi la connessione non esegue un pezzo di codice ....

    SERVER

    codice:
    using System; using System.IO; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net.Sockets; using System.Net; namespace Chat1 { class ServerComunication { static void Main(string[] args) { try { IPAddress ipAd = IPAddress.Parse("192.168.1.6"); // mettere l'indirizzo ip a cui il client di collegherà ........ TcpListener myList = new TcpListener(ipAd, 16333); myList.Start(); Console.WriteLine("Server in ascolto alla porta : 16333..."); //Console.WriteLine("The local End point is :" + myList.LocalEndpoint); //informazioni sul server ..... Console.WriteLine("Aspettando una connessione .......\n"); Socket s = myList.AcceptSocket(); //accetta la connessione Console.WriteLine("Connessione accettata da: " + s.RemoteEndPoint); Comunica(s); if (Comunica(s) == "Close") { s.Close(); myList.Stop(); } else { //myList.Start(); Comunica(s); } } catch (Exception e) { Console.WriteLine("Error..... " + e.StackTrace); } } static string Comunica(Socket s) { byte[] b = new byte[100]; int lunghezzaStringa = s.Receive(b); Console.WriteLine("Ricevuto ...\n"); string stringaRicezione = ""; for (int i = 0; i < lunghezzaStringa; i++) { Console.Write(Convert.ToChar(b[i])); stringaRicezione += Convert.ToChar(b[i]); } //ASCIIEncoding asen = new ASCIIEncoding(); ////s.Send(asen.GetBytes("The string was recieved by the server.")); return stringaRicezione; } } }
    CLIENT
    codice:
    using System; using System.IO; using System.Net; using System.Text; using System.Net.Sockets; public class clnt { public static void Main() { try { TcpClient tcpclnt = new TcpClient(); Console.WriteLine("Connecting....."); tcpclnt.Connect("192.168.1.6", 16333); // use the ipaddress as in the server program Console.WriteLine("Connected"); Comunica(tcpclnt); if (Comunica(tcpclnt) == "Close") tcpclnt.Close(); else Comunica(tcpclnt); } catch (Exception e) { Console.WriteLine("Error..... " + e.StackTrace); } } static string Comunica(TcpClient tcpclnt) { Console.Write("Chatta: "); String str = Console.ReadLine(); Stream stm = tcpclnt.GetStream(); ASCIIEncoding asen = new ASCIIEncoding(); byte[] ba = asen.GetBytes(str); Console.WriteLine("Transmitting....."); stm.Write(ba, 0, ba.Length); byte[] bb = new byte[100]; int k = stm.Read(bb, 0, 100); string comunicazione = ""; for (int i = 0; i < k; i++) { Console.Write(Convert.ToChar(bb[i])); comunicazione += Convert.ToChar(bb[i]); } return comunicazione; } }

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

    Moderazione

    Riapri una nuova discussione nel forum corretto (Visual Basic e .NET Framework) avendo cura di postare per bene il codice, come indicato nel regolamento interno, ovvero scrivendo a mano i tag e incollando il codice all'interno del corpo della discussione e non nella PopUp che compare al clic sul pulsante "CODE", altrimenti viene scritto tutto in una riga.

    PS: Cerca anche di dare un titolo esaustivo alla discussione. "Socket C#" non dice nulla del vero problema della 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.