导航:首页 > 配服务器 > 如何更改发送给其他服务器的数据

如何更改发送给其他服务器的数据

发布时间:2024-06-24 06:56:54

A. 如何修改http协议的请求的数据格式

HTTP客户请求数据格式

大多数servlet程序都是和浏览器客户以HTTP协议进行通信的,这需要编程人员对程序的基本功能和HTTP协议的具体操作有深入的理解。在学习
servlet和Jsp编程时,有两点值得注意:首先是对HTTP协议的操作过程和数据格式足够熟悉,其次要灵活应用servlet的API中的有关方法
正确高效地处理有关数据。

一、HTTP客户请求的数据格式说明

HTTP请求包括三部分:请求行(Request
Line),头部(Headers)和数据体(Body)。其中,请求行由请求方法(method),请求网址Request-URI和协议
(Protocol)构成,而请求头包括多个属性,数据体则可以被认为是附加在请求之后的文本或二进制文件。

下面这个例子显示了一个HTTP请求的Header内容,这些数据是真正以网络HTTP协议从IE浏览器传递到Tomcat服务肢和弊器上的。
GET /icwork/? search=proct HTTP/1.1
Accept:image/gif,image/x-xbitmap,image/jpeg,image/pjpeg,application/vnd.ms-powerpoint,application/vnd.ms-excel,application/msword,*.*
Accept-Language:en-us
Accept-Encoding:gzip,deflate
User-Agent:Mozilla/4.0(compatible;MSIE 5.01;Windows NT 5.0;DigExt)
Host:
Referer:
Connection:Keep-Alive
这段程序使用了6个Header,还有一些Header没有出现。我们参考这个例子具体解释HTTP请求格式。
1.HTTP请求行:请求行格式为Method Request-URI Protocol。在上面这个例子里,逗GET /icwork/? search=pruct HTTP/1.1地是请求行。
2.Accept:指浏览器或其他客户可以接爱的MIME文件格式。Servlet可以根据它判断并返回适当的文件格式。
3.Accept-Charset:指出浏览器可以接受的字符编码。英文浏览器的默认值是ISO-8859-1.
4.Accept-Language:指出浏览器可以接受的语言种类,如en或en-us,指英语。
5.Accept-Encoding:指出浏览器可以接受的编码方式。编码方式不同于文件格式,它是为了压缩文件并加速文件传递速度。浏览器在接收到Web响应之后先解码,然后再检查文件格式。
6.Authorization:当使用密码机制时用来标识浏览器。
7.Cache-Control:设置关于请求被代理服务器存储的相关选项。一般servlet用不到。
8.Connection:用来告诉服务器是否可以维持固定的HTTP连接。HTTP/1.1使用Keep-Alive为默认值,这样,当浏览器需要多个文件时(比如一个HTML文件和相关的图形文件),不需要每次都建立连接。
9.Content-Type:用来表名request的内容类型。可历族以用HttpServletRequest的getContentType()方法取得。
10.Cookie:浏览器用这个属性向服务器发送Cookie。Cookie是在浏览器中寄存的小型数据体,它可以记载和服务器相关的用户信息,也可以用来实现会话功能。
11.Expect:表时客棚塌户预期的响应状态。
12.From:给出客户端HTTP请求负责人的email地址。
13.Host:对应网址URL中的Web名称和端口号。
14.If-Match:供PUT方法使用。
15.If-Modified-Since:客户使用这个属性表明它只需要在指定日期之后更改过的网页。因为浏览器可以使用其存储的文件而不必从服务器请求,这样节省了Web资源。由于Servlet是动态生成的网页,一般不需要使用这个属性。
16.If-None-Match:和If-Match相反的操作,供PUT方法使用。
17.If-Unmodified-Since:和If-Match-Since相反。
18.Pragma:这个属性只有一种值,即Pragma:no-cache,表明如果servlet充当代理服务器,即使其有已经存储的网页,也要将请求传递给目的服务器。
19.Proxy-Authorization:代理服务器使用这个属性,Servlet一般用不到。
20.Range:如果客户有部分网页,这个属性可以请求剩余部分。
21.Referer:表明产生请求的网页URL。如比从网页/icconcept/index.jsp中点击一个链接到网页/icwork
/search,在向服务器发送的GET/icwork/search中的请求中,Referer是
/icconcept/index.jsp。这个属性可以用来跟踪Web请求是从什么网站来的。
22.Upgrage:客户通过这个属性设定可以使用与HTTP/1.1不同的协议。
23.User-Agent:是客户浏览器名称。
24.Via:用来记录Web请求经过的代理服务器或Web通道。
25.Warning:用来由客户声明传递或存储(cache)错误。
补充.Transfer-Encoding:
当不能预先确定报文体的长度时,不可能在头中包含Content-Length域来指明报文体长度,此时就需要通过Transfer-Encoding域来确定报文体长度。

通常情况下,Transfer-Encoding域的值应当为chunked,表明采用chunked编码方式来进行报文体的传输。chunked编码是HTTP/1.1 RFC里定义的一种编码方式,因此所有的HTTP/1.1应用都应当支持此方式。

chunked编码的基本方法是将大块数据分解成多块小数据,每块都可以自指定长度

二、下面是一个分析并显示客户请求的Header信息的servlet(tomcat下测试通过):

java 代码

Code:

import javax.servlet.*;

import javax.servlet.http.*;

import java.io.*;

import java.util.Enumeration;

public class headerinfo extends HttpServlet{

public void doPost(HttpServletRequest req,HttpServletResponse resp)

throws ServletException,IOException

{

/*

Enumeration e = req.getHeaderNames();

while (e.hasMoreElements()) {

String s = (String) e.nextElement();

System.out.println("header: " + s + " " + req.getHeader(s));

}

e = req.getAttributeNames();

while (e.hasMoreElements()) {

String s = (String) e.nextElement();

System.out.println("attribute: " + s + " " + req.getAttribute(s));

}

e = req.getParameterNames();

while (e.hasMoreElements()) {

String s = (String) e.nextElement();

System.out.println("parameter: " + s + " " + req.getParameter(s));

}*/

resp.setContentType("text/html; charset=GBK");

PrintWriter out = resp.getWriter();

out.println("<html><head><title>FormParameterServlet</title></head>");

out.println("<body bgcolor=\"white\">");

out.println("<center><font color=\"#009999\" size=\"4\" face=\"Arial\">");

out.println("<strong>List of all Headers in Servlet Request</strong>");

out.println("</font></center>");

out.println("<hr>");

out.println("<H3>Request Line is:</H3>");

out.println("<b>Method:</b>"+req.getMethod()+"<br>");

out.println("<b>URI:</b>"+req.getRequestURI()+"<br>");

out.println("<b>Protocol</b>"+req.getProtocol()+"<br>");

out.println("<center><h3>Header Name and Values</h3></center>");

out.println("<table border=1 align=center>");

out.println("<tr bgcolor='#99cee6'><th>Name</th><th>value</th></tr>");

Enumeration headernames = req.getHeaderNames();

while(headernames.hasMoreElements()){

String headername = (String)headernames.nextElement();

out.println("<tr><td>"+headername+"</td><td>"+req.getHeader(headername)+"</td></tr>");

}

out.println("</table></body></html>");

out.flush();

}

public void doGet(HttpServletRequest req,HttpServletResponse resp)

throws ServletException,IOException

{

doPost(req,resp);

}

}

B. 我ping服务器,-t是不停的发ping包,我想限定时间,如何设置参数,比如ping60秒,如何设置

ping命令详解···你可以学习下·

对于Windows下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用ping这个工具,也总结了一些小经验,现在和大家分享一下。
现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有在安装了TCP/IP协议以后才可以使用:
ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s count] [[-j computer-list] | [-k computer-list]] [-wz timeout] destination-list
Options:
-t Ping the specified host until stopped.To see statistics and continue - type Control-Break;To stop - type Control-C.
不停的ping地方主机,直到你按下Control-C。
此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。

-a Resolve addresses to hostnames.
解析计算机NetBios名。
示例:C:\>ping -a 192.168.1.21
Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data:
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
Ping statistics for 192.168.1.21:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。

-n count Number of echo requests to send.
发送count指定的Echo数据包数。
在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过以下获知:
C:\>ping -n 50 202.103.96.68
Pinging 202.103.96.68 with 32 bytes of data:
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
Request timed out.
………………
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
Ping statistics for 202.103.96.68:
Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate round trip times in milli-seconds:
Minimum = 40ms, Maximum = 51ms, Average = 46ms
从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均速度为46ms。

-l size Send buffer size.
定义echo数据包大小。
在默认的情况下windows的ping发送的数据包大小为32byt,我们也可以自己定义它的大小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到65500byt,因为Windows系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向对方一次发送的数据包大于或等于65532时,对方就很有可能挡机,所以微软公司为了解决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上,否则后果自负)
C:\>ping -l 65500 -t 192.168.1.21
Pinging 192.168.1.21 with 65500 bytes of data:
Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
………………
这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包,如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务完全停止,由此可见威力非同小可。

-f Set Don't Fragment flag in packet.
在数据包中发送“不要分段”标志。
在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会再分段处理。

-i TTL Time To Live.
指定TTL值在对方的系统里停留的时间。
此参数同样是帮助你检查网络运转情况的。

-v TOS Type Of Service.
将“服务类型”字段设置为 tos 指定的值。

-r count Record route for count hops.
在“记录路由”字段中记录传出和返回数据包的路由。
在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中给大家讲解。以下为示例:
C:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由)

Pinging 202.96.105.101 with 32 bytes of data:

Reply from 202.96.105.101: bytes=32 time=10ms TTL=249
Route: 202.107.208.187 ->
202.107.210.214 ->
61.153.112.70 ->
61.153.112.89 ->
202.96.105.149 ->
202.96.105.97 ->
202.96.105.101 ->
202.96.105.150 ->
61.153.112.90

Ping statistics for 202.96.105.101:
Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 10ms, Maximum = 10ms, Average = 10ms
从上面我就可以知道从我的计算机到202.96.105.101一共通过了202.107.208.187 ,202.107.210.214 , 61.153.112.70 , 61.153.112.89 , 202.96.105.149 , 202.96.105.97这几个路由。

-s count Timestamp for count hops.
指定 count 指定的跃点数的时间戳。
此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。

-j host-list Loose source route along host-list.
利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。

-k host-list Strict source route along host-list.
利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。

-w timeout Timeout in milliseconds to wait for each reply.
指定超时间隔,单位为毫秒。
此参数没有什么其他技巧。

ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,粗略的判断目标主机的系统类型是Windows系列还是UNIX/Linux系列,一般情况下Windows系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240-255之间,当然TTL的值在对方的主机里是可以修改的,Windows系列的系统可以通过修改注册表以下键值实现:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"DefaultTTL"=dword:000000ff
255---FF
128---80
64----40
32----20
好了,ping命令也基本上完全讲解完了,其中还有-j,-k参数我还没有详细说明,由于某些原因也包括我自己所收集的资料过少这里也没有向大家详细介绍,请大家见谅,如果在看了这篇文章的朋友当中有知道得比我更多的,以及其他使用技巧的也希望您能告诉我,并在此先谢过。

对于Windows下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用ping这个工具,也总结了一些小经验,现在和大家分享一下。
现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有在安装了TCP/IP协议以后才可以使用:
ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s count] [[-j computer-list] | [-k computer-list]] [-w timeout] destination-list
Options:
-t Ping the specified host until stopped.To see statistics and continue - type Control-Break;To stop - type Control-C.
不停的ping地方主机,直到你按下Control-C。
此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。

-a Resolve addresses to hostnames.
解析计算机NetBios名。
示例:C:\>ping -a 192.168.1.21
Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data:
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
Reply from 192.168.1.21: bytes=32 time<10ms TTL=254
Ping statistics for 192.168.1.21:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com。

-n count Number of echo requests to send.
发送count指定的Echo数据包数。
在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过以下获知:
C:\>ping -n 50 202.103.96.68
Pinging 202.103.96.68 with 32 bytes of data:
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
Request timed out.
………………
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
Reply from 202.103.96.68: bytes=32 time=50ms TTL=241
Ping statistics for 202.103.96.68:
Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate round trip times in milli-seconds:
Minimum = 40ms, Maximum = 51ms, Average = 46ms
从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均速度为46ms。

-l size Send buffer size.
定义echo数据包大小。
在默认的情况下windows的ping发送的数据包大小为32byt,我们也可以自己定义它的大小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到65500byt,因为Windows系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向对方一次发送的数据包大于或等于65532时,对方就很有可能挡机,所以微软公司为了解决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个带有攻击性的命令:(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上,否则后果自负)
C:\>ping -l 65500 -t 192.168.1.21
Pinging 192.168.1.21 with 65500 bytes of data:
Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254
………………
这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包,如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务完全停止,由此可见威力非同小可。

-f Set Don't Fragment flag in packet.
在数据包中发送“不要分段”标志。
在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会再分段处理。

-i TTL Time To Live.
指定TTL值在对方的系统里停留的时间。
此参数同样是帮助你检查网络运转情况的。

-v TOS Type Of Service.
将“服务类型”字段设置为 tos 指定的值。

-r count Record route for count hops.
在“记录路由”字段中记录传出和返回数据包的路由。
在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说你只能跟踪到9个路由,如果想探测更多,可以通过其他命令实现,我将在以后的文章中给大家讲解。以下为示例:
C:\>ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由)

Pinging 202.96.105.101 with 32 bytes of data:

Reply from 202.96.105.101: bytes=32 time=10ms TTL=249
Route: 202.107.208.187 ->
202.107.210.214 ->
61.153.112.70 ->
61.153.112.89 ->
202.96.105.149 ->
202.96.105.97 ->
202.96.105.101 ->
202.96.105.150 ->
61.153.112.90

Ping statistics for 202.96.105.101:
Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 10ms, Maximum = 10ms, Average = 10ms
从上面我就可以知道从我的计算机到202.96.105.101一共通过了202.107.208.187 ,202.107.210.214 , 61.153.112.70 , 61.153.112.89 , 202.96.105.149 , 202.96.105.97这几个路由。

-s count Timestamp for count hops.
指定 count 指定的跃点数的时间戳。
此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个。

-j host-list Loose source route along host-list.
利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。

-k host-list Strict source route along host-list.
利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。

-w timeout Timeout in milliseconds to wait for each reply.
指定超时间隔,单位为毫秒。
此参数没有什么其他技巧。

ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,粗略的判断目标主机的系统类型是Windows系列还是UNIX/Linux系列,一般情况下Windows系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240-255之间,当然TTL的值在对方的主机里是可以修改的,Windows系列的系统可以通过修改注册表以下键值实现:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"DefaultTTL"=dword:000000ff
255---FF
128---80
64----40
32----20
好了,ping命令也基本上完全讲解完了,其中还有-j,-k参数我还没有详细说明,由于某些原因也包括我自己所收集的资料过少这里也没有向大家详细介绍,请大家见谅,如果在看了这篇文章的朋友当中有知道得比我更多的,以及其他使用技巧的也希望您能告诉我,并在此先谢过。

C. 怎么修改手机网游的云服务器存档比如黄金……粮食……钻石……之类的数据

对于单机游戏来说,所有数据都是在内存和硬盘上的,所以单机游戏实际上是有内存修改器和存档修改器两种。只不过修改的位置不同,技术上来说都是大同小异,就是直接修改游戏数据。制作技术不外乎两种,一种是直接分析游戏主程序对应的反汇编代码,找出关键位置。另一种则比较简单,是通过游戏中数据的变化,来找到对应位置。比如金山游侠中的内存搜索,就是通过搜索内存中某个数值的变化来确定内存地址从而修改数值的。(实际上只要把游戏数据存储成浮点类型,一票类似原理的修改器都跪了。。。)。存档修改器也是类似,首先存个档,然后消耗个数值,然后再存一个档,比较两个存档的差异来确定要修改的位置。知道了要修改的内存或存档地址之后,剩下的就是写个程序修改对应内存或者存档的位置就行了。基本上单机游戏修改器就是这么个流程。

网游的数据都是存储在服务器上,所以所谓外挂的原理其实也没比单机复杂多少。比如有个网游的基本架构如下:

实际上一般还有个账户服务器,用户账户数据一般是跟游戏数据分离开的,一个用户账户是可以登录若干个游戏服务器的。但是这个跟本话题无关暂时省略掉。
比如你在游戏中做了某样操作,比如打个怪,或者开个宝箱,这时候,游戏客户端的任务就是把你这些操作,转换成预先定义好的数据格式发送给游戏服务器,然后游戏服务器收到数据之后,了解了你的意图,然后在游戏服务器上做了一番比较和判断之后,然后把结果发送给游戏客户端,你掉了XX血获得YY经验,打开宝箱得到ZZZ物品。客户端收到服务器的指令之后,在你的画面上把服务器的结果显示出来,仅此而已。
这时候就能看出来了,你仅仅修改游戏客户端的数值是没用的,因为数值并没有同步到游戏服务器上,下次服务器给你发送数据的时候就会改回来。
那么游戏外挂是怎么做的呢?关键就在于外挂会模拟客户端发送数据参考下图。

比如在客户端我正常打怪,手动点击一秒钟打怪一次,但是外挂则会毫无节操地一秒钟发送给服务器几十哪怕上百次打怪的数据。于是有些服务器就会被骗过,从而客户以更高的效率获得经验和奖励。但是这种方法对外挂编写者技术要求比较高,首先你得能分析的出来原来客户端和服务器段通信的数据封包的格式,然后写出模拟客户端的外挂程序。其次最重要的是你得能骗得过服务器。像一秒钟打怪几十次的数据,服务器还是很容易判断出你是在作弊的。而且对于这种严重破坏游戏公平性的外挂来说,被发现的代价还是很大的。游戏公司也是严厉禁止的。
骗不过服务器怎么办呢?于是有些外挂走上了另一条路,这条路上外挂不是模拟游戏客户端了,而是模拟游戏的主体——人。也就是外挂部分或者全部代替人在游戏中的作用。就像下面的图示。

还用打怪来举例子就是外挂给游戏客户端发送模拟指令,模拟用户的打怪操作。然后用某种预先定义好的算法,更有效率的打怪,然后在HP低到一定程度的时候,自动回血。基本上只是一个自动代练的程序实现。这种外挂有些并没有很大的破坏游戏的公平性,游戏官方也是睁一只眼闭一只眼的。

后来好多游戏公司举得,既然这种外挂并没有怎么破坏游戏的公平性,那为啥不自己做呢,能多赚点钱谁不乐意呢?于是有些游戏就又提供了游戏的挂机打怪功能,根据功能不同,免费或收费也不尽相同。于是这种官方提供的东西又被叫做内挂。。。

D. 几十上百T数据如何在服务器之间迁移,又什么解决方案(可以停机)

要看什么数据,比如文件存储服务器,可以买2块万兆光纤网卡,直接复制,或者用软件复制,速度很快就搞定
如果带数据库,不建议直接复制,容易出问题,
数据库通过使用数据库的软件备份,比如用友,金蝶的数据库,然后复制备份数据到新服务器,原则上,以数据,从小到大开始
如果数据库实在太大,可以给使用该数据库软件的公司联系,看能不能做数据库和软件分离,单独的一台服务器只做数据库,只存放数据库数据,不负载其他软件,或者做类似分布式存储,多台服务器存储数据库数据,不集中在某一台服务器

E. 如何将数据转移至新的服务器

1. 先登陆旧服务器上的LUM,在“清理垃圾”中将mysql和postgres的日志清除干净2. 将/home/ftp, /home/mysql_data, /home/pgsql_data, /home/lum_safe_files目录打包,文件名为my_data.tar.gz(如果有多个FTP主目录,需要将所有FTP主目录都打包):cd /home; tar -zcvf my_data.tar.gz ftp mysql_data pgsql_data lum_safe_files3. 在新服务器上安装好LuManager,但需要注意的一点就是,新服务器的上数据库版本需要与旧版本的一致,如旧版本的mysql版本为5.1.59,新服务器上的mysql也必须是5.1,可以是5.1.59,也可以是5.1.61,但不要使用mysql5.5.X4. 在新服务器上执行lu-stop,停止lu服务5. 将新服务器上的/home/ftp, /home/mysql_data, /home/pgsql_data, /home/lum_safe_files目录重命名mv /home/ftp /home/ftp.oldmv /home/mysql_data /home/mysql_data.oldmv /home/pgsql_data /home/pgsql_data.oldmv /home/lum_safe_files /home/lum_safe_files.old6. 将旧服务器上的备份文件my_data.tar.gz转移到新服务器上的/home目录下,然后解压tar -zxvf my_data.tar.gz7. 在新服务器上执行lu-start,启动lu服务,然后再用旧服务器上的帐号登陆LUM便可

阅读全文

与如何更改发送给其他服务器的数据相关的资料

热点内容
amx命令 浏览:383
施乐打印机服务器有什么用 浏览:93
编译64位triangle程序 浏览:625
程序员下午上班怎么样 浏览:401
方块饵压缩机 浏览:515
it项目管理pdf下载 浏览:545
上海私企程序员月工资多少 浏览:857
plc是编程嘛 浏览:248
时政学习用什么app 浏览:967
基于单片机的日历设计方案 浏览:8
手机内存6个文件夹清理 浏览:486
用压缩机改装打气泵 浏览:821
hu0026c什么牌子app 浏览:919
加密软件如何恢复 浏览:478
推特号加密码 浏览:674
我的世界存档成就是什么文件夹 浏览:351
马云讲程序员 浏览:667
用终端命令编译c语言文件 浏览:720
道士和女僵尸办事 浏览:994
程序员小王视频全集 浏览:954