Anonymní profil Jerry – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Jerry – Programujte.comAnonymní profil Jerry – Programujte.com

 

Příspěvky odeslané z IP adresy 92.245.198.–

Jerry
C / C++ › Čtení ze socketu AF_INET / l…
15. 4. 2015   #201398

#2 q
Bomba, dík moc :-)

Jerry
C / C++ › Čtení ze socketu AF_INET / l…
14. 4. 2015   #201385

Ahoj, nevěděl by ste mi někdo říct kde dělám chybu? Snažím se o komunikaci TCP/IP klient server, kdy klient se připojí k serveru pošle nějaká data a server to přečte a zobrazí. Můj problém je že i když spojení navážu, text se přenese, tak jako výstup se mi zobrazí nesmysly. Dík

Server

#include <iostream>
#include <arpa/inet.h>

using namespace std;

int main(int argc, char** argv) {

	sockaddr_in serverAddr;
	sockaddr_in clietnAddr;
	int mainSocket;
	int client;
	socklen_t clientLen;

	if((mainSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_IP)) == -1) {
		cerr << "chyba vytváření socketu\n";
		return -1;
	}

	serverAddr.sin_family = AF_INET;
	serverAddr.sin_port = htons(9939);
	serverAddr.sin_addr.s_addr = INADDR_ANY;

	if(bind(mainSocket, (sockaddr*) &serverAddr, sizeof(serverAddr)) == -1) {
		cerr << "chyba pojemnování socketu\n";
		return -1;
	}

	if(listen(mainSocket, 10) == -1) {
		cerr << "chyba fronty\n";
		return -1;
	}

	clientLen = sizeof(clietnAddr);
	client = accept(mainSocket, (sockaddr*) &clietnAddr, &clientLen);
	if(client == -1) {
		cerr << "chyba připojení\n";
		return -1;
	}

	char buffer[1000];
	string text = "";

	int byteRead = 0;
	do {
		byteRead = recv(client, buffer, 999, 0);
		cout << "přečteno : " << byteRead << endl;
		text += buffer;
	} while(byteRead > 0);

	cout << text;
}


klient

#include <iostream>
#include <arpa/inet.h>
#include <string>

using namespace std;

int main(int argc, char** argv) {

	sockaddr_in serverAddr;
	int mainSocket;
	string text = "Ahoj já sem klient";

	if((mainSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_IP)) == -1) {
		cerr << "chyba vytváření socketu\n";
		return -1;
	}

	serverAddr.sin_family = AF_INET;
	serverAddr.sin_port = htons(9939);
	serverAddr.sin_addr.s_addr = inet_addr("192.168.0.103");

	if(connect(mainSocket, (sockaddr*) &serverAddr, sizeof(serverAddr)) == -1) {
		cerr << "chyba spojení\n";
		return -1;
	}

	if(send(mainSocket, &text, text.size() + 1, 0) == -1) {
		cerr << "Chyba odesílání\n";
		return -1;
	}

}
Jerry
C / C++ › Překlad programu Eclipse
3. 3. 2015   #199738

Jo jo dík už sem to našel pravým na projekt -> Properties -> C/C++ Build -> Setings -> C++ Linker -> Libraries

Jerry
C / C++ › Překlad programu Eclipse
28. 2. 2015   #199665

Ahoj

Uměl by ste mi někdo poradit kde a jak mám v Eclipsu nastavit parametry pro překlad? Například když pracuju s vlákny abych nemusel neustále překládat program v terminálu stylem g++ ./program.cpp -lpthread, ale mohl dát rovnou Run v IDE.

Jerry
Java › SocketChannel a ByteBuffer
24. 2. 2015   #199564

#2 q
Aplikace klient / server posílají si mezi sebou data přez SocketChannel, jenom nevím dopředu jak budou veký. Když čtu z kanánlude de to v pohodě a na velikosti bufferu v podstatě nezáleží a přečte mi to jako jednu příchozí zprávu.

String data = "";
int nacteno = socketChannel.read(buffer);

while(nacteno > 0) {
   buffer.flip();
   while(buffer.hasReamaning()) {
      data += (char) buffer.get();
   }
   
   buffer.clear();
   nacteno = socketChannel.read(buffer);
}

Teď mi de o to jak podobným způsobem odeslat data bet toho aniž bych musel realokovat buffer podle velikosti odesílaných dat...

Jerry
Java › SocketChannel a ByteBuffer
24. 2. 2015   #199559

Ahoj

Potřeboval bych pomoct s zapisováním bajtů do SocketChannelu. Dejme tomu že mám zprávu dlouhou 100 bajtů, ale ByteBuffer alokovanej jenom na 50. Šlo by nějak pomocí něj zprávu odeslat aniž bych předem musel buffer zvětšit?

Jerry
C / C++ › Deklarace rodičovské třídy p…
1. 2. 2015   #198679

#2 ondrej39
Díky mnohokrát ;)

Jerry
C / C++ › Deklarace rodičovské třídy p…
1. 2. 2015   #198676

Dobrý den přeju

Chtěl bych se na vás obráti s problémem ohledně dědičnosti. Mám vytvořenou třídu A a od ní zděděnou třídu B, samy o sobě tyhle třídy fungují jak mají, ale v programu se až za chodu rozhoduje která z nich se má použít. Můj pokus o řeší byl následovný

A* třída;

if(podmínka splněna) {
  třída = new A();
} else {
  třída = new B();
}

Problém spočívá v tom že i když se třída A inicializuje pomocí třídy B tak stejně vykonává metody třídy A.

Za pomoc předem děkuji.

TK
Java › Java Native Interface javah…
6. 10. 2014   #194670

Náhoda, nejde to jakou dobu a přijdu na to jen co to napíšu na fórum... Pomohlo vytvořit .jar a javah použít na něj...

TK
Java › Java Native Interface javah…
6. 10. 2014   #194634

Zdravím, už delší dobu se pokouším zprovoznit java native interface Ale ztroskotal sem hned na uplným začátku. Nejdřív zkompiluju přez javac, to je všechno OK, ale jakmile se pokusím vytvořit hlavičkovej soubor tak mi to háže chybu

Exception in thread "main" java.lang.IllegalArgumentException: Not a valid class name: JNI.class
    at com.sun.tools.javac.api.JavacTool.getTask(JavacTool.java:177)
    at com.sun.tools.javac.api.JavacTool.getTask(JavacTool.java:68)
    at com.sun.tools.javah.JavahTask.run(JavahTask.java:509)
    at com.sun.tools.javah.JavahTask.run(JavahTask.java:335)
    at com.sun.tools.javah.Main.main(Main.java:46)


kód v jave je

package test;

public class JNI {
    
    private native void pozdrav();
    
    static {
        System.loadLibrary("HelloWorld");
    }
    
    public static void main(String[] args) {
        new JNI().pozdrav();
    }
}

při kompilaci postupuju

- javac JNI.java

-javah -jni JNI.class

OS Fedora 64bit, dík za příadnou pomoc!

Java › projekt s vlákny
30. 3. 2014   #188793

Pokud sem tě dobře pochopil, tak ti na to úplně stačí swingový timer. Nějak si nedokážu představit na co bys tam chtěl používat další vlákna.

Java › Volanie Frame z metódy
27. 3. 2014   #188688

#3 Anonym
Tak to pak jedině asi budeš muset tu metodu rozšířit "extends"
=>
 

package metody;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.Timer;

public class SuperButton extends JButton implements ActionListener {
    
    private final Timer timer;
    private int X = 0;
    private int Y = 0;

    public SuperButton() {
        setVisible(true);
        setText("tlacitko");
        setBounds(X, Y, 90, 30);
        timer = new Timer(1000, this);
        timer.start();
    }
    
    @Override
    public void actionPerformed(ActionEvent e) {
        X++;
        Y++;
        setBounds(X, X, 90, 30);
        this.repaint();
    }
    
}

A v JFrame pak
 

package metody;

import javax.swing.JButton;

public class Okno extends javax.swing.JFrame {

    private final JButton tlacitko;
    
    public Okno() {
        initComponents();
        tlacitko = new SuperButton();       
        this.add(tlacitko);
    }

.
.
.
.
.
Java › Volanie Frame z metódy
26. 3. 2014   #188645

A nebylo by lepší volat z GUI metodu třídy která bude mít na starosti například to přesouvání tlačítka?
např:
 

public class GUI extends javax.swing.JFrame {

    
    Trida t = new Trida();

.
.
.

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        jButton1.setLocation(jButton1.getX() + t.get_X(), jButton1.getY() + t.get_Y());
    } 

a třída

 

package metody;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Timer;

public class Trida implements ActionListener {
    
    private final Timer timer;
    private int X = 0;
    private int Y = 0;    

    public Trida() {
        timer = new Timer(1000, this);
        timer.start();
    }
    
    public int get_X() {
        return X;
    }
    
    public int get_Y() {
        return Y;
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        X++;
        Y++;
    }
}

Pokud bys chtěl pracovat s metodami konkrétního tlačítka musíš ho předat jako argument
 

import javax.swing.JButton;


public class Tlacitko {
    
    private final JButton tlacitko;

    public Tlacitko(JButton m_tlacitko) {
        this.tlacitko = m_tlacitko;
    }
    
    void posun(int pos_X, int pos_Y) {
        tlacitko.setLocation(pos_X + 1, pos_Y + 1);
    }
}
Java › TCP Socket Server Java
23. 3. 2014   #188536

   

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Jenda
 */
public class Server extends Thread {

    Socket s;

    public static void main(String[] args) {
        try {
            ServerSocket ss = new ServerSocket(5222);
            while (true) {
                Socket s = ss.accept();
                Server srv = new Server();
                srv.s = s;
                srv.start();
            }
        } catch (IOException ex) {
            Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    /*Tady si měl jako vstupní parametr "Socket s" takže ti to
bralo z toho, ale už si nikde tomu vláknu neřekl kde to "s"
má vzít. Zkus to takhle.*/
    @Override
    public void run() {
        try {
            InputStream is = s.getInputStream(); //ze site
            OutputStream os = s.getOutputStream(); // to co ja posilam do site
            BufferedReader br = new BufferedReader(new InputStreamReader(is)); //obaleni buffered abych mohl cist po celych radcich
            String str;
            while ((str = br.readLine()) != null) {
                System.out.println(">> " + str);
                str = "SRV: " + str + "\n";
                os.write(str.getBytes());
            }
        } catch (IOException ex) {
            Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}
Java › zavření objektu
22. 3. 2014   #188508

dispose(); By ti mělo normálně fungovat, takže takhle těžko říct. Muže ti chybět u tlačítka nějaký Listener, nebo nevoláš dispose na příslušné okno. Mužeš zkusit this.dispose();

např:

package okno;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;

public class Okno implements ActionListener {

    private final JFrame okno;
    private final JButton tlacitko;

    public Okno() {
        //Vytvořím okno
        okno = new JFrame("Moje okno");
        okno.setSize(400, 400);
        okno.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        okno.setVisible(true);
        
        //Vytvořím tlačítko na celou obrazovku
        tlacitko = new JButton("Zavři");
        okno.add(tlacitko);
        tlacitko.setVisible(true);
        tlacitko.addActionListener(this); //Přidám tlačítku Listener
    }  
    
    @Override
    public void actionPerformed(ActionEvent e) {
        //po kliknutí se vykoná
        okno.dispose();
    }
    
    public static void main(String[] args) {
        new Okno();
    } 
}
Zero
Java › přidání CSS do JSP
21. 3. 2014   #188507

Zdravím, marně se snažím přidat do JSP stránky odkaz na CSS v normálním html není problém.

Na netu sem našel několik tipů, ale nic nezabralo

<link href="${pageContext.request.contextPath}../css/style.css" rel="stylesheet" type="text/css"/>

ani

<link href="<c:url value='../css/style.css' />" rel="stylesheet" type="text/css"/>

Nevím jestli je to relevantní, jako server používám Tomcat. Za odpověď předem dík.

Java › Naprogramování faktury a pro…
21. 3. 2014   #188506

Pokud chceš pomocí javy naplnit DB, bylo by asi nejlepší stáhnout si nějakou knihovnu k tomu určenou a pomocí ní provádět SQL příkazy. Na youtube určitě najdeš pár tutoriálů. A co se GUI týče zkus třeba místo JCreatoru radši Netbeans, v celku pohodlně si tam nahážeš komponenty a vytvoříš pro ně akce i bez nějakýho většího programování.

An
Java › Java a MSSQL zadavani prikazu
19. 2. 2014   #187512

No nevím jak v mssql, ale v mysql pro získání dat z SetResult ještě musíš použít .next(); 

Dumbas
Java › obsah podmínky if
18. 11. 2013   #184076

Dík, funguje. Dycky hledám problém kde není...   

Dumbas
Java › obsah podmínky if
18. 11. 2013   #184067

Ahoj lidi

Mám naprogramovanou síťovou aplikaci klient server, všecko funguje skvěle, dokud jakýkoliv klient svojí aplikaci připojenou k serveru nezavře...

Vím kde je chyba

else {
	SocketChannel client = (SocketChannel) chan;
	client.read(buffer);
	buffer.flip();
	while(buffer.hasRemaining()) {
		System.out.print((char) buffer.get());
	}
	buffer.clear();
}

client.read(buffer) - tady nejde do buffru načíst něco co neexistuje...

Takže bych potřeboval jestli nějak nejde udělat blok if něco ve stylu

if(client.read(buffer) == throws java.nio........) {}
Teks
Java › Servlety + AJAX
22. 9. 2013   #181591

Ahoj, začínám se učit programovat web pomocí javy a ani né že by mi něco nešlo, ale spíš bych se chtěl zeptat jestli je nějaký způsob jak asynchronně načítat stránku (např. podle vstupu do pole vypisovat obsah DB bez znovu načtení). Normálně bych k tomu použil AJAX, ale když už něco dělám tak to chci dělat pořádně, tak se chci zeptat jestli je to "profi" řešení, nebo existuje i jiný způsob.

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý