870分 870分 870分 up有分\n [有朋友精通Winsock开发的请进]实现互动游戏 可以肯定需要服务器,你可以考虑服务器启动后发IP邮件到邮箱,让客户端自动POP邮件取IP就可以了,谁都可以作为服务器,这样的缺点是GPRS网卡禁止移动或者掉线后重连有问题.只用JS不好办,数据可能不能保证一致性. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我觉得用C#挺不错的,JS的话,可能不太好,很多功能都比较吃力如果不用服务器,只是手动填入,那样的话,不太方便,只适合于那些事先联系好的人玩 to:gjd111686(数字金刚) 其实这样的程序想来想去,可以说每个机器都能起到服务器的作用,只是谁是第一个主动连接的就批准谁为服务器,如果这个连接断开了,那么另外一个[第二个主动连接者]就为服务器我没有说只用js开发可以用java apple 或其他的语言写一个sock程序,,只是能用js调用而已对于断口,用80的问题多,那么就不能在换了吗?况且这个程序也不用什么web服务器!如果其他断口也受防火墙限制那么,kele8等一些在线游戏,他是怎么做到的呢?? 用JAVA实现并发SOCKET通信 如果以前做过C的SOCKET编程,那么这一段对你来说将不是什么难事。利用JAVA的多线程机制我们可以非常方便的实现并发服务。 每当我们知道服务器主程序创建一个新的套接字连接(即成功地调用了accept()方法)的时候,就启动一个新的线程来负责本服务器和该客户之间的连接,主程序将返回并等待下一个连接。为了实现这个方案,本服务器主循环应该采用如下形式: while(true) { Socket newjoin=s.accept(); Tread t=new ThreadedChatHandle(newjoin); t.start(); } ThreadedChatHandle类是从Thread类衍生出的处理聊天过程的子类,它的run()方法包括了服务器和客户的通信循环——判断客户的请求(例如登录、发言、刷新在线列表),处理发言数据,发送聊天信息等等。下面是一个服务器程序的例子,可以帮助初学者尽快理解。 import java.io.*; import java.net.*; public class ChatServer { public static void main(String[] args) { int I=1; try {ServerSocket s=new ServerSocket(8080); /*创建一个监视8080端口的服务器套接字,如果需要,你可以改成80端口*/ for(;;) { Socket newjoin=s.accept(); /*等待一个连接。如果这个连接没有被创建,本方法阻塞当前线程。返回值是一个Socket对象,服务器程序利用这个对象可以与连接的客户通信。*/ System.out.println(“新连接”+i); new ThreadedChatHandle(newjoin,i).start(); /* ThreadedChatHandle(Socket theS,int c)是我们自己定义的聊天服务类,这个类在后边我们有进一步描述*/ i++; } } catch(Exception e) { System.out.println(e); } } …… } 多进程(线程)并发服务的一个关键问题是,如何实现进程(线程)间通信。每个客户的发言(包括表情和动作等选项)都需要放在一个公共的地方,让所有的输出线程都能够获得它。解决的方法有很多,比如说放在数据库里,放在大家都有权限的dat文件里,或直接用管道实现进程间通信。其中,对一个聊天室服务器来说,第一种方法是最傻的,太消耗系统资源,而且使程序执行效率变慢,可能出错环节增多。而使用管道通信的方式,把所有发言数据都保存在内存里,不但可以获得最高的执行效率,安全的执行过程,也不用考虑线程同步的问题。不要以为所有的发言数据会很多,其实服务器端只要保存最后100句就已经很了不起了,不是吗? JAVA里关于管道的API有: ●Java.io.PipedInputStream PipldInputStream(): 创建新的管道输入流,且它没有关联一个管道输出流。 PipldInputStream(PipldOutputStream out): 创建新的管道输入流,且从管道输出流out中读取数据。 connect(PipldOutputStream out): 关联一个管道输出流,且这个流读取数据。 ●Java.io.PipedOutputStream PipldOutputStream(): 创建新的管道输出流,且它没有关联一个管道输入流。 PipldOutputStream(PipldInputStream in): 创建新的管道输出流,并输出数据到in。 connect(PipldInputStream in): 关联一个管道输入流,并输入数据到in。 没有服务器,当然可以,我说的意思是开发一个低级的sock这个只是一个 基本 的dll,,,从而能用js调用并开发!可能在后期开发中会用js判断来实现 其实这个dll即是 服务器 又是客户断 Socket也需要有服务器侦听啊,只是你的服务器和客户端放到了一起.肯定得处理. to: gjd111686(数字金刚)都理解错了,没有运行程序时并不是把自己做成服务器当启动动,经过判断该由哪个机器做服务器[]然后就可以然后就有服务器侦听了谁能写一个dll看看???偶不会所以,才放高分求救啊!!!!upupupuupupupu 用xml模拟无刷新,不能起到sock的作用 回复人: redsleaf(红叶(漫天飞)) ( ) 信誉:100 2004-07-06 13:33:00 得分: 0 to: gjd111686(数字金刚)都理解错了,没有运行程序时并不是把自己做成服务器当启动动,经过判断该由哪个机器做服务器[]然后就可以然后就有服务器侦听了谁能写一个dll看看???偶不会所以,才放高分求救啊!!!!upupupuupupupu --------------------------我还是没理解:“经过判断该由哪个机器做服务器”那么是谁判断?如果没有服务器,公说公有理,婆说婆有理,谁做服务器呢?你的意思大概和QQ的道理一样吧~~~集中管理登陆的用户IP,而用户之间的通信是用户之间的事情,不再通过主服务器。 to mikespook(我需要一份工作) ok你的理解的和我想的一样, 做一个比较好理解的说明吧!1 这个程序的工作就和小时候玩游戏一样, 几个人在一起玩,那么谁当头呢!这样就要大家一起来推荐,那么最后呢!结果证明往往谁最先提出的“那么谁当头呢!”谁就有可能当上头[当然在网络上还会有其他因数、比如网路速度等],如果这个人退役了,那么就要竞争了, 请教一个简单的小问题,很急,谢谢大家 表格有多少路可以走 GetRows 和 数组 reponse.getOutputStream() 后还可以调用getWrite吗?怎么调? 能否在某个网页元素后面增加东西? 如何为这段js写的电影地址加密,请高手帮忙,谢谢! 表单信息直接发到邮箱要怎么做 在线求教一个问题,急 在线求助:请问用什么软件打开PDF档案,用什么软件打开CDM档案 easyUI数据网格行扩展报错$.fn.datagrid is undefined 在一个函数里要调用别的文件夹下的html文件里的函数,格式应该怎么写??????谢谢 子窗口怎么和父窗口同时关闭
如果不用服务器,只是手动填入,那样的话,不太方便,只适合于那些事先联系好的人玩
其实这样的程序想来想去,可以说每个机器都能起到服务器的作用,只是谁是第一个主动连接的就批准谁为服务器,如果这个连接断开了,那么另外一个[第二个主动连接者]就为服务器我没有说只用js开发
可以用java apple 或其他的语言写一个sock程序,,只是能用js调用而已对于断口,用80的问题多,那么就不能在换了吗?况且这个程序也不用什么web服务器!
如果其他断口也受防火墙限制那么,kele8等一些在线游戏,他是怎么做到的呢??
{ Socket newjoin=s.accept();
Tread t=new ThreadedChatHandle(newjoin);
t.start();
} ThreadedChatHandle类是从Thread类衍生出的处理聊天过程的子类,它的run()方法包括了服务器和客户的通信循环——判断客户的请求(例如登录、发言、刷新在线列表),处理发言数据,发送聊天信息等等。下面是一个服务器程序的例子,可以帮助初学者尽快理解。 import java.io.*;
import java.net.*;
public class ChatServer
{ public static void main(String[] args)
{ int I=1;
try
{ServerSocket s=new ServerSocket(8080);
/*创建一个监视8080端口的服务器套接字,如果需要,你可以改成80端口*/
for(;;)
{ Socket newjoin=s.accept();
/*等待一个连接。如果这个连接没有被创建,本方法阻塞当前线程。返回值是一个
Socket对象,服务器程序利用这个对象可以与连接的客户通信。*/
System.out.println(“新连接”+i);
new ThreadedChatHandle(newjoin,i).start();
/* ThreadedChatHandle(Socket theS,int c)是我们自己定义的聊天服务类,这个
类在后边我们有进一步描述*/
i++;
}
}
catch(Exception e)
{ System.out.println(e);
}
}
……
} 多进程(线程)并发服务的一个关键问题是,如何实现进程(线程)间通信。每个客户的发言(包括表情和动作等选项)都需要放在一个公共的地方,让所有的输出线程都能够获得它。解决的方法有很多,比如说放在数据库里,放在大家都有权限的dat文件里,或直接用管道实现进程间通信。其中,对一个聊天室服务器来说,第一种方法是最傻的,太消耗系统资源,而且使程序执行效率变慢,可能出错环节增多。而使用管道通信的方式,把所有发言数据都保存在内存里,不但可以获得最高的执行效率,安全的执行过程,也不用考虑线程同步的问题。不要以为所有的发言数据会很多,其实服务器端只要保存最后100句就已经很了不起了,不是吗? JAVA里关于管道的API有: ●Java.io.PipedInputStream PipldInputStream(): 创建新的管道输入流,且它没有关联一个管道输出流。 PipldInputStream(PipldOutputStream out): 创建新的管道输入流,且从管道输出流out中读取数据。 connect(PipldOutputStream out): 关联一个管道输出流,且这个流读取数据。 ●Java.io.PipedOutputStream PipldOutputStream(): 创建新的管道输出流,且它没有关联一个管道输入流。 PipldOutputStream(PipldInputStream in): 创建新的管道输出流,并输出数据到in。 connect(PipldInputStream in): 关联一个管道输入流,并输入数据到in。
我说的意思是开发一个低级的sock
这个只是一个 基本 的dll,,,从而能用js调用并开发!
可能在后期开发中会用js判断来实现
都理解错了,没有运行程序时并不是把自己做成服务器
当启动动,经过判断该由哪个机器做服务器[]然后就可以然后就有服务器侦听了谁能写一个dll看看???
偶不会所以,才放高分求救啊!!!!
upupupuupupupu
to: gjd111686(数字金刚)
都理解错了,没有运行程序时并不是把自己做成服务器
当启动动,经过判断该由哪个机器做服务器[]然后就可以然后就有服务器侦听了谁能写一个dll看看???
偶不会所以,才放高分求救啊!!!!upupupuupupupu
--------------------------
我还是没理解:“经过判断该由哪个机器做服务器”那么是谁判断?如果没有服务器,公说公有理,婆说婆有理,谁做服务器呢?你的意思大概和QQ的道理一样吧~~~集中管理登陆的用户IP,而用户之间的通信是用户之间的事情,不再通过主服务器。
ok你的理解的和我想的一样,
做一个比较好理解的说明吧!1
这个程序的工作就和小时候玩游戏一样,
几个人在一起玩,那么谁当头呢!这样就要大家一起来推荐,那么最后呢!结果证明往往谁最先提出的“那么谁当头呢!”谁就有可能当上头[当然在网络上还会有其他因数、比如网路速度等],如果这个人退役了,那么就要竞争了,