在加拿大
如题,有偿跪求java高手给写个tcp端口数据交换的小程序
具体要求如下
Aufgabe 1
a) Schreiben Sie ein Java-Programm für den Server einer verteilte Wetterstation, das TCP Sockets
verwendet und funktional identisch mit dem aus Blatt 3 ist. Die Station besteht einem Server
und n Messgerauml;ten. Der Server muss das folgende Protokoll (API/Interface) implementieren:
public synchronized void save(WeatherData wd);
Sie sollen dazu das „Thread per Connection“ Entwurfsmuster aus der Vorlesung verwenden. Sie
kouml;nnen als Grundlage die verschiedenen TCPServer Klassen und ihre Clients benutzen. Achten
Sie auf Probleme, die durch Multithreading und Nebenlauml;ufigkeit entstehen und verwenden Sie,
wo notwendig, synchronized oder auml;quivalente Konstrukte. (Tipp: Dies ist insbesondere bei
gemeinsam genutzten Datenstrukturen erforderlich.) Wenn der Server korrekte Daten erhauml;lt,
werden diese an der Kommandozeile (oder in ein Datei) ausgegeben. Im Fehlerfall wird eine
Fehlermeldung ausgegeben (aber nicht an den Client zurückgegeben). Die TCP Verbindung wird
solange offengehalten, bis der Clientdiese schlieszlig;t. Mit anderen Worten, die Verbindung (der
Socket) wird nicht nach jeder Nachricht geschlossen, sondern kann für mehre Nachrichten offen
bleiben. (Sie kouml;nnen einzelne Nachrichten durch “nn” oder ei geeignetes anders Trennzeichen
Ihrer Wahl trennen.
b) Schreiben Sie ein Java-Programm für die Clients der verteilten Wetterstation, das TCP Sockets
verwendet. Die Benutzerschnittstelle des Clients kann eine einfaches Kommandozeileninterface
sein, wie es nachstehendes Beispiel verdeutlicht:
>Please enter data:
>42, 2010-03-18T10:37:09, 54.1, 12.2, 8.4, 54.2, 789.2
>sending data to server
>Please enter data:
>42, 2010-03-18T10:38:09, 54.1, 12.2, 8.5, 54.2, 789.2
>Please enter data:
>Close
>>Connection closed
Der Client muss einen Fehler zurückmelden, wenn die Daten syntaktisch nicht korrekt sind. Der
Client schlieszlig;t die Verbindung bei Eingabe des Schlüsselwortes “Close”. Ebenso muss der Client
bei Netzwerkproblemen o.auml;. eine Fehlermeldung zurückgeben. Alternativ zur Kommandozeile
kouml;nnen Sie die Daten auch aus einer (Test-) Datei einlesen.
Aufgabe 2
Schreiben Sie mehrere Testszenarien, um die folgenden Anwendungsfauml;lle zu testen:
1. Client liest korrekte Daten ein und sendet diese.
2. Client liest inkorrekte Daten.
3. Mehrere Clients senden „gleichzeitig“
4. Client sendet Daten und der Server ist nicht online.
Sie sollten dafür das JUnit Framework verwenden (auszlig;er für Fall 3).
评论
有兴趣的高手也可以邮件联系
[email protected]
评论

·加拿大新闻 保时捷Cayenne纯电动版内饰亮相,新势力味道够浓
·加拿大新闻 撞烂魁北克飞机的无人机机主,知名游戏业大亨被判入狱及重罚
·加拿大新闻 新建房禁用门把手!温哥华这些事你可能不知道!
·加拿大新闻 保时捷CayenneTurbo电动车,千匹马力内饰曝光
·加拿大新闻 加拿大提前劳动者福利金10月12日发放,最高预支50%税款抵免
·中文新闻 联盟能源政策:下次选举时成为中央木板的核电
·中文新闻 Ella Clements:被指控圣奥古斯丁的老师的行为在五个月内升级