تمرير الإحداثيات من عميل جافا لخادم جافا

StackOverflow https://stackoverflow.com/questions/1824605

  •  22-07-2019
  •  | 
  •  

سؤال

أولا أنا أعرف إحداثيات وربما المصطلحات الخطأ؟ كنت تحمل فما استقاموا لكم فاستقيموا ببساطة تمرير المتغيرات x و y، ولكن تنسق وصف ذلك أفضل أشعر به.

والآن أنا بحاجة إلى خادم والتي يمكن الوصول إليها من قبل عملاء 2، هي لعبة سباق ويتطلب كل عميل لتكون قادرة على المناورة وسيارات السباق simultaniously، كل باستخدام نظام تحكم مختلفة ولكن هذا لا هنا ولا هناك.

وكنت اتمنى شخص ما من شأنه أن يكون قادرا على مساعدتي عندما يتعلق الأمر بإرسال مواقف x و y من سيارات السباق إلى الخادم وجود خادم إرسالها إلى اللاعب التالي والعكس بالعكس للسماح كلا رسكر للتحرك في الوقت نفسه على كل نافذة العملاء. حتى الآن أنا قد فعلت فقط الاشياء الخادم بسيط، مثل خادم تدق تدق على موقع الشمس، وخادم صدى البسيط الذي يكرر سلسلة أبعث إلى الملقم.

وعندما حاولت استخدام الباحث بدلا من سلسلة أنا تلقي خطأ أن كثافة أردت لتمرير كان الحيوي (تغير واضح مع كل حركة)، ولا يمكن أن تنتقل كما ثابت (باستخدام readInt وwriteInt).

وهكذا أي مساعدة حول كيفية إنشاء حركة المطلوبين على كل من ويندوز العميل من خلال خادم سيكون موضع تقدير.

والشكر

هل كانت مفيدة؟

المحلول

وهناك حل بسيط هو استخدام ObjectOutputStream الأجسام تسلسل :

class Coordinates implements Serializable{...}

ObjectOutputStream out = new ObjectOutputStream(...);
out.writeObject(new Coordinates(...));

نصائح أخرى

وكريغ، كنت قريبة. الديناميكي / ثابت هو سوء فهم، وهذا لا علاقة له مع لعبة سباق الخاص بك أو القيم المتغيرة لا شيء. انها مجرد أنه لا يمكن إلغاء تسلسل المجالات، التي تم تعريفها ثابت (أو عابرة)، كما جاء في جافادوك لObjectInputStream:

<اقتباس فقرة>   

وأعلن الحقول كما يتم تجاهل عابرة أو ثابت من عملية إلغاء التسلسل.

والحل هو (أمل) بسيط: إزالة معدل static من الخاص بك س / ص الأعداد الصحيحة، التي يجب أن تحل المشكلة. راجع للشغل - إذا سلسلة الخاص بك، ظلت على حالها، لكان قد فشلت تماما بنفس الطريقة

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top