日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Java中的多人游戲。將客戶端(玩家)連接到其他客戶端創建的游戲

瀏覽:251日期:2024-04-28 13:27:41
如何解決Java中的多人游戲。將客戶端(玩家)連接到其他客戶端創建的游戲?

另一個客戶端由于其防火墻而無法連接到客戶端A。

您可以創建兩種主要的網絡:

服務器客戶端

點對點

但是客戶端可以將一些數據保存到服務器,服務器可以將它們發送給所有客戶端(您不需要點對點網絡就可以讓客戶端B向客戶端A發送一些數據)。

示例:客戶端B將其地圖位置發送到服務器,服務器將數據發送給所有客戶端,因此客戶端A能夠在客戶端B的位置繪制字符圖塊。

要將兩臺PC連接在一起,您需要將端口從服務器的調制解調器轉發到用作服務器的PC,然后從用作服務器的PC的防火墻打開該端口。

您還可以在這里看看如何使用python創建一個多人游戲,我舉了一個示例,其中客戶端可以將它們與IRC連接在一起,并可以玩井字游戲(因此您不必管理服務器))。我在這篇文章的結尾添加了一個Java示例。

import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.net.ServerSocket;import java.net.socket;import java.util.Date;public class Server{ public static void main(String[] args) throws Exception {ServerSocket listener = new ServerSocket(4000);String line;try{ while (true) {Socket socket = listener.accept();BufferedReader readerChannel = new BufferedReader(new InputStreamReader(socket.getInputStream()));BufferedWriter writerChannel = new BufferedWriter(new OutputStreamWriter(socket.getoutputStream()));try{ writerChannel.write(new Date().toString() + 'nr'); writerChannel.flush(); while ((line = readerChannel.readLine()) != null) {System.out.println(line); }}finally{ socket.close();} }}finally{ listener.close();} }}

import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.net.socket;import java.util.Date;public class Client{ public static void main(String[] args) throws Exception {Socket socket = new Socket('127.0.0.1', 4000);BufferedWriter writerChannel = new BufferedWriter(new OutputStreamWriter(socket.getoutputStream()));BufferedReader readerChannel = new BufferedReader(new InputStreamReader(socket.getInputStream()));String line;writerChannel.write(new Date().toString() + 'nr');writerChannel.flush();while ((line = readerChannel.readLine()) != null){ System.out.println(line);} }}

import javax.net.ssl.SSLSocket;import javax.net.ssl.SSLSocketFactory;public class Client{ public static void main(String[] args) throws Exception {SSLSocketFactory socketBuilder = (SSLSocketFactory) SSLSocketFactory.getDefault();SSLSocket socket = (SSLSocket) socketBuilder.createSocket('127.0.0.1', 4000); }}

import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import javax.net.ssl.SSLSocket;import javax.net.ssl.SSLSocketFactory;public class Client{ public static void main(String[] args) throws Exception {SSLSocketFactory socketBuilder = (SSLSocketFactory) SSLSocketFactory.getDefault();SSLSocket socket = (SSLSocket) socketBuilder.createSocket('irc.freenode.net', 6697);BufferedWriter writerChannel = new BufferedWriter(new OutputStreamWriter(socket.getoutputStream()));BufferedReader readerChannel = new BufferedReader(new InputStreamReader(socket.getInputStream()));String line, computerName, nick, login, channel = '#bot', channelPassword = '';long id = 1;computerName = java.net.InetAddress.getLocalHost().getHostName();nick = computerName + '_' + id;login = computerName + '_' + id;writerChannel.write('NICK ' + nick + 'rn'); // Join IRC with a specific NickwriterChannel.write('USER ' + login + ' 8 * :' + login + ' rn'); // Join IRC with a specific UserwriterChannel.flush();while ((line = readerChannel.readLine()) != null){ if (line.indexOf('004') != -1) // If connected {break; } else if (line.indexOf('433') != -1) // If Nick already in use {id++;nick = computerName + '_' + id;login = computerName + '_' + id;writerChannel.write('NICK ' + nick + 'rn');writerChannel.write('USER ' + login + ' 8 * :' + login + ' rn');writerChannel.flush(); }}writerChannel.write('JOIN ' + channel + ' ' + channelPassword + 'rn'); // Join a channelwriterChannel.flush();while ((line = readerChannel.readLine()) != null){ try {line = line.substring(line.indexOf('#'));channel = line.substring(0, line.indexOf(' '));if (line.toLowerCase().startsWith('ping')) // avoid ping time-out{ writerChannel.write('PONG :' + line.substring(5) + 'rn'); writerChannel.flush();}else if (line.toLowerCase().contains('!ping')){ writerChannel.write('PRIVMSG ' + channel + ' :pongrn'); writerChannel.flush();}else if (line.toLowerCase().contains('!join')){ String newChannel = line.substring(line.indexOf('!join') + 6); int stringPosition; if ((stringPosition = newChannel.indexOf(' ')) != -1) {String newPassword = newChannel.substring(stringPosition + 1);newChannel = newChannel.substring(0, stringPosition);writerChannel.write('JOIN ' + newChannel + ' ' + newPassword + 'rn');writerChannel.flush(); } else {writerChannel.write('JOIN ' + newChannel + 'rn');writerChannel.flush(); }}else if (line.toLowerCase().contains('!leave')){ writerChannel.write('PART ' + channel + 'rn'); writerChannel.flush();}else if (line.toLowerCase().contains('!quit')){ writerChannel.write('QUITrn'); writerChannel.flush(); System.exit(0);} } catch (Exception e) { }} }}

我無法為您提供對等網絡的示例,因為我從未這樣做過。這確實很困難,您必須在互聯網上進行大量研究。

https://docs.oracle.com/javase/7/docs/api/java/net/Socket.html

https://docs.oracle.com/javase/tutorial/networking/sockets/

http://www.oracle.com/technetwork/java/socket-140484.html

您需要一個多線程服務器來處理許多不同的連接。

提示-我已經回答了一些類似的問題。 即使編程語言有時有所不同,我也會為您提供鏈接,但邏輯總是相同的,因此可以為您提供幫助:

在python中創建多人游戲

Xcode Mass Multiplayer(不是您可能在想的)

MMO如何處理真人游戲的每一刻為成千上萬的玩家計算和發送數據包?

解決方法

我正在開發多人游戲,無法找出如何將其他客戶端連接到所創建的游戲。我的意思是客戶端A創建與服務器的套接字連接,其他客戶端(A,B…)如何連接到客戶端A?有人可以幫我嗎?

PS我是網絡編程的新手,因此,如果您可以舉一些例子,我將不勝感激。

標簽: java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久精品国产亚洲aⅴ| 欧美国产偷国产精品三区| 日韩精品欧美| 成人在线免费观看网站| 国产一区二区三区视频在线| 精品三级久久久| 精品久久91| 国产va免费精品观看精品视频| 麻豆国产精品| 国产白浆在线免费观看| 国产高清不卡| 99久久久久久中文字幕一区| 亚洲91久久| 欧美另类专区| 国产亚洲激情| 亚洲精品极品| 国产区精品区| 国产精品theporn| 国产 日韩 欧美 综合 一区 | 尤物精品在线| 久久亚洲色图| 久久国产尿小便嘘嘘| 午夜在线精品偷拍| 亚洲精品高潮| 国产精品任我爽爆在线播放| 精品三级av| 人人香蕉久久| 亚洲欧美日韩精品一区二区| 日本不卡高清| 精品女同一区二区三区在线观看| 国产高清日韩| 欧洲亚洲一区二区三区| 视频在线观看91| 国产亚洲欧美日韩精品一区二区三区 | 国产成人久久精品麻豆二区| 日韩精品中文字幕第1页| 国户精品久久久久久久久久久不卡| 在线 亚洲欧美在线综合一区| 香蕉久久一区| 国产精品二区不卡| 亚洲经典在线| 日本91福利区| 欧美天堂视频| 综合在线一区| 黄色欧美在线| 亚洲精品一区二区妖精| 日韩欧美四区| 日韩在线欧美| 在线精品观看| 久久精品午夜| 亚洲一区黄色| 精品午夜视频| 久久国产精品99国产| 国产精品久久久久久久久久白浆 | 日韩网站在线| 国产精品夜夜夜| 欧美日中文字幕| 日韩中文字幕在线一区| 国产精品久久久久蜜臀| 蜜桃久久精品一区二区| 国产欧美激情| 欧美日韩视频| 精品中文字幕一区二区三区四区| 在线亚洲国产精品网站| 免费看久久久| 亚洲一区二区日韩| 欧美三区四区| 青青草91视频| 欧美成人亚洲| 卡一卡二国产精品| 亚洲一区二区三区免费在线观看 | 在线精品视频在线观看高清| 欧美日韩精品一区二区三区视频 | 欧美日韩视频免费看| 99热精品久久| 国产精品毛片aⅴ一区二区三区| 国产精品99一区二区| 欧美一区自拍| 91精品电影| 国产一区三区在线播放| 亚洲精品乱码日韩| 亚洲香蕉网站| 国产一区二区三区精品在线观看| 亚洲毛片视频| 亚洲天堂成人| www.九色在线| 国产精品一区亚洲| 亚洲图片久久| 好吊日精品视频| 久久青青视频| 久久字幕精品一区| 欧美一区=区三区| 尹人成人综合网| 色88888久久久久久影院| 麻豆精品av| 久久国产乱子精品免费女| 免播放器亚洲一区| 亚洲欧美伊人| 神马午夜在线视频| 国产极品模特精品一二| 日本免费新一区视频| 亚洲天堂日韩在线| 最新亚洲一区| 久久在线视频免费观看| 成人污污视频| 精品一区二区三区在线观看视频| 日韩精品视频中文字幕| 午夜欧美精品| 久久亚洲国产| 成人羞羞在线观看网站| 成人欧美一区二区三区的电影| 精品美女久久| 久久久久九九精品影院| 国产精品乱战久久久| 欧美久久一区二区三区| 日韩三级精品| 亚洲精品免费观看| 日韩精品中文字幕一区二区| 亚洲精品韩国| 四虎在线精品| 日韩精品亚洲专区在线观看| 日韩激情综合| 亚洲v天堂v手机在线| 天堂va在线高清一区| 日韩精品91亚洲二区在线观看| 婷婷成人av| 日韩不卡一区二区三区| 国产剧情在线观看一区| 国产精品中文| 久久精品三级| 国产精品毛片久久| 日韩欧美二区| 久久国产电影| 尤物网精品视频| 石原莉奈在线亚洲二区| 亚洲自啪免费| 视频一区二区不卡| 亚洲制服一区| 日韩中文字幕一区二区高清99| 国产亚洲精品美女久久| 国产高清日韩| 日韩在线免费| 亚洲精品一二三区区别| 亚洲精品动态| 国产精品成人一区二区网站软件| 国语精品一区| 亚洲调教视频在线观看| 亚洲专区视频| 国产伦精品一区二区三区视频| 精品伊人久久| 九一精品国产| 一区二区高清| 日韩精品社区| 麻豆中文一区二区| 久久精品免费一区二区三区| 日韩视频不卡| 日日摸夜夜添夜夜添国产精品| 欧美国产视频| 日本精品影院| 日韩影院免费视频| 国产精品日韩精品中文字幕| 中文字幕在线高清| 日韩视频一区| 欧美精品中文| 婷婷综合六月| 蜜桃久久av一区| 久久69成人| 亚洲午夜久久久久久尤物 | 人人爱人人干婷婷丁香亚洲| 国产一区二区三区亚洲综合| 国产精品88久久久久久| 亚洲毛片在线免费| 美女久久久久久 | 电影91久久久| 久久aⅴ国产紧身牛仔裤| 国产精品欧美三级在线观看 | 日本成人手机在线| 亚洲最新无码中文字幕久久| 久久最新视频| 精品国产日韩欧美精品国产欧美日韩一区二区三区| 久久久夜夜夜| 欧美日韩a区| 婷婷六月综合| 91成人在线网站| 久久久精品久久久久久96 | 视频在线观看91| 精品视频网站| 免费久久99精品国产自在现线| 国产三级一区| 免费久久精品| 国产精品第一国产精品| 婷婷久久一区| 精品视频亚洲| 亚洲理论在线| 久久久人人人| 久久av国产紧身裤| 蜜臀久久99精品久久久久久9| 国产不卡精品在线| 日韩国产欧美三级| 激情五月色综合国产精品|