PDA

View Full Version : مشکلی در رابطه با جاوا



rahafrouz
یک شنبه 03 شهریور 1387, 13:44 عصر
سلام به همه
:متعجب::متعجب::متعجب::متعجب:: تعجب::متعجب::متعجب::متعجب::م عجب::متعجب::متعجب::متعجب::مت جب::متعجب::متعجب::متعجب::متع ب:
من یک مسنجر نوشتم که برای تبادل اطلاعات از فرستادن آبجکت استفاده می کند و از متد های ObjectOutputStrem and Object InputStream استفاده می کند. اول از همه که ObjectOutputStrem کار نکرد و من از کلاس PrintWriter و متد print استفاده کردم و لا اقل ارور نداد ولی ObjectInputStream هیچ کاری نمی کند و چیزی را دریافت نمی کند حالا من چه کنم، آیا می توان از متدی دیگر به جای این استفاده کرد؟ و سوال دیگر اینکه ایا آبجکتی که فرستاده شده که در آن دو متغیر هست را برنامه ی دیگر میشناسد؟(اگر اسم متغیرها یکی باشد)

rahafrouz
یک شنبه 03 شهریور 1387, 14:05 عصر
<div align="left">اینم از سورس:




try {
message mes = new message();
mes.show(t1.getText(), t2.getText());
Socket toserver = new Socket("127.0.0.1", 1001);
//ObjectOutputStream oosserv = new ObjectOutputStream(//nashod
// toserver.getOutputStream());//nashod
PrintWriter p=new PrintWriter(toserver.getOutputStream());//shod
//oosserv.writeObject((message) mes);//nashod
p.print((message)mes);//shod
{

rahafrouz
یک شنبه 03 شهریور 1387, 14:10 عصر
قسمت قبل می فرستد

در این قسمت به مشکل برخوردم که اطلاعات را می گیرد


try {
while(true){
Socket toserver = new Socket("127.0.0.1", 1001);
ObjectInputStream oisserv = new ObjectInputStream(toserver
.getInputStream());
mes1 = (message) oisserv.readObject();
if (mes1 != null) {
String nname = mes1.name;
String nmsg = mes1.msg;
mes1.show(nname, nmsg);//yek method ke chap mikonad
mes1 = null;
}

}

</div>

rahafrouz
دوشنبه 04 شهریور 1387, 12:09 عصر
کسی بلد نبود؟

koorosh01
شنبه 09 شهریور 1387, 02:16 صبح
کد کلاس message رو بزار

rahafrouz
دوشنبه 18 شهریور 1387, 14:56 عصر
import java.awt.*;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;
import java.net.*;
import java.io.*;
import java.lang.*;

public class Server_Amir extends Thread {
class message extends Object implements Serializable {
public String name,msg;
public void show(String name, String msg) {
t3.append(name + ":" + msg);
// send to another//---------------------
}
}

JPanel p;

JLabel l1, l2;

GridBagLayout lay;

GridBagConstraints con;

JTextField t1, t2;

JTextArea t3;

JFrame f;

JButton b1, b2;


public Server_Amir() {

f = new JFrame("Server");
p = new JPanel();
lay = new GridBagLayout();
con = new GridBagConstraints();
l1 = new JLabel("");
l2 = new JLabel("Enter your name:");
t1 = new JTextField(30);
t2 = new JTextField(255);
t3 = new JTextArea();
b1 = new JButton("Make a Connection");
b2 = new JButton("Send");
f.add(p);
f.setVisible(true);
f.setSize(500, 500);
p.setLayout(lay);

// Layout
p.add(l1);
p.add(l2);
p.add(t1);
p.add(t2);
p.add(t3);
p.add(b1);
p.add(b2);
//
con.fill = GridBagConstraints.HORIZONTAL;
con.gridx = 1;
con.gridy = 1;
lay.setConstraints(l1, con);
//
con.anchor = GridBagConstraints.EAST;
con.gridx = 1;
con.gridy = 2;
lay.setConstraints(l2, con);
//
con.gridx = 2;
con.gridy = 2;
lay.setConstraints(t1, con);
//

con.gridx = 2;
con.gridy = 3;
lay.setConstraints(b1, con);
//
con.gridx = 1;
con.gridy = 4;
lay.setConstraints(t3, con);
//
con.gridx = 1;
con.gridy = 5;
lay.setConstraints(t2, con);
//
con.gridx = 2;
con.gridy = 5;
lay.setConstraints(b2, con);
//

buttonlistener bl = new buttonlistener();
b1.addActionListener(bl);
b2.addActionListener(bl);
}

public static void main(String[] args) {
Server_Amir c = new Server_Amir();
}

class buttonlistener extends Thread implements ActionListener {
public void run() {
message mes1=new message();
mes1=null;
while(true){
try {
ServerSocket ss=new ServerSocket(1001);
Socket client =ss.accept();
BufferedReader bf=new BufferedReader(new InputStreamReader(client.getInputStream()));

ObjectInputStream oisserv = new ObjectInputStream(client
.getInputStream());
mes1=(message)oisserv.readObject();
if(mes1!=null){
String nname=mes1.name;
String nmsg=mes1.msg;
String total=bf.readLine();
t3.append(total);
mes1.show(nname, nmsg);
}
mes1=null;
} catch (IOException e) {}
catch(ClassNotFoundException e1){t3.append("Error in Classes...");}


}
}

public void actionPerformed(ActionEvent evt) {
Object obj = evt.getSource();
if (obj == b2) {
try {
String total=t1.getText()+":"+t2.getText();

message mes = new message();

mes.show(t1.getText(), t2.getText());
Socket client = new Socket("127.0.0.1",1001);
PrintStream ps=new PrintStream(client.getOutputStream());

ObjectOutputStream oosserv = new ObjectOutputStream(
client.getOutputStream());
PrintWriter p=new PrintWriter(client.getOutputStream());
p.print(total);
oosserv.writeObject((message) mes);

} catch (IOException e) {
t3.append("Error in connection...");
}

}
if (obj == b1) {
Thread t=new Thread(this);
t.start();
}
}
}
}

rahafrouz
شنبه 30 شهریور 1387, 11:15 صبح
کسی بلد نبود؟

manvaputra
شنبه 30 شهریور 1387, 14:43 عصر
کد کلاینت رو هم مثل سرور بذار اینجا تا بشه باهم تستشون کرد.

rahafrouz
دوشنبه 01 مهر 1387, 11:50 صبح
شما می توانید همین را دوبار اجرا کنید. هم گوش میکند و هم می فرستد. به نظر خودم که نباید مشکلی داشته باشد یعنی همین را دوبار اجرا کنید کار می دهد چون من برنامه ای نظیر این را دیده ام.

manvaputra
دوشنبه 01 مهر 1387, 12:41 عصر
سلام آخه من همین کارو کردم و جوای نداد یعنی هیچ اتفاقی که نشون بده کانکشنی بر قرار شده رخ نداد !!!

rahafrouz
چهارشنبه 03 مهر 1387, 19:54 عصر
سلام
مشکل من هم همین هست! چون همه چیزهایش به نظر درست می آیند ولی کار نمی کند
من اول هم این را به صورت سرور/کلاینت نوشته بودم ولی آن موقع هم کار نمی داد! به نظر شما چه کار کنم؟؟

rahafrouz
چهارشنبه 10 مهر 1387, 13:59 عصر
كسي نمي داند؟ خواهش مي كنم كمك كنيد آخه من دوماهه جاوا رو شروع كردم
نميدونم چرا اين كار نمي كنه؟