Socket für Datenaustausch und Chat

_streissi

Grünschnabel
Erstmal hallo
bin neu hir xD

und jt auch gl zu meiner frage:
ich muss ein Programm schreiben wo man chatten kann und Daten übertragen. Die Daten müssen nicht groß sein gerade mal Bilder, Dokumente etc. Das chatten hab ich schon mit Socket und ServerSocket und dann nen BufferedReader und Writer nur weiss ich nicht wie ich jt die Daten übertragen kann brauch ich da noch nen eigenen Socket oder geht das auch mit nur einen.


hoffe ihr könnt mit meinem geschreibsel was anfangen

mfg streissi
 
Ich verstehe die Frage nicht ganz. Du hast Sockets, und weißt nicht was du damit anfangen sollst?

Server:

1. mal Serversocket mit Port als Parameter.
Methode accept aufrufen, wartet auf Verbindung und gibt nen Socket zurück.

Client:

1. mal Socket mit IP und Port als Parameter.

Ein Thread der Daten empfängt und darauf reagieren soll:

Java:
package ingame.client;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.Socket;

public final class WaitForData extends Object implements Runnable
{
	private Socket socket;
	
	public WaitForData(Socket socket)
	{
		super();
		
		this.socket = socket;
	}
	public void run()
	{
		while(true)
		{
			String data = this.readData();
			String[] dataSplit = data.split("/");
			
			if(dataSplit[0].equals("Command ect."))
				this.tuewas;
		}
	}
	private String readData()
	{
		final int bufferlenght = 1024;
		char[] buffer;
		String data = null;
		BufferedReader bufferedReader;
		
		try
		{
			int charCount = 0;
			buffer = new char[bufferlenght];
			bufferedReader = new BufferedReader(
					new InputStreamReader(
							this.socket.getInputStream()));

			charCount = bufferedReader.read(buffer, 0, 1024);
			data = new String(buffer, 0, charCount);
		}
		catch(Exception e)
		{
			e.printStackTrace();
		}
		
		return(data);
	}
}
Statische Methode zum versenden von Befehlen:
Java:
package ingame.client;

import java.io.OutputStreamWriter;
import java.io.PrintWriter;

public final class Send extends Object
{
	public Send()
	{
		super();
	}
	public final static void send(String string, java.net.Socket socket)
	{
		PrintWriter printWriter = null;
		try
		{
			printWriter = new PrintWriter(
					new OutputStreamWriter(
							socket.getOutputStream()));
		}
		catch(Exception e)
		{
			e.printStackTrace();
		}
		printWriter.print(string);
		printWriter.flush();
	}
}
 
danke für deine schnelle antwort

ja hab Sockets und sry wenn ich mich unverständlich ausgedrückt habe lerne Java erst seit 2-3 Monate und arbeite mich da immer wieder ein nur manches verstehe ich net, hab auch schon vergleichbares gesucht.

Den chatt sprich die kommunikation mittels String hab ich schon das funktioniert alles. Nur meine frage war wie ich jt Daten wie Bilder, Documente usw. an den anderen schicke und ob ich da noch einen zweiten Socket brauche oder nicht?


mfg
 
Zuletzt bearbeitet:
Danke für den Link zu den openbook Java ist auch eine Insel
hat mir sehr geholfen und hab auch noch andere Interessante Themen gefunden.


mfg streissi
 

Neue Beiträge

Zurück