我正在创建一个模拟VPN(实际上并不创建与服务器的真实连接)来获取所有传入和传出的网络字节(信息).
现在我可以获取数据包并解析它们.我得到的例子:
IP版本:4标题长度:20总长度:60协议:6源IP:10.0.2.0目标IP:5.20.5.59主机名:clients4.google.com
我想知道我应该怎么做以及如何建立与网站/应用程序的连接(现在它没有连接).
在这个网站:http://www.thegeekstuff.com/2014/06/android-vpn-service/写道,需要做出这些步骤:
在第2步,我从数据包中获取信息.但是不要轻视它应该如何进一步完成.也许有人可以详细解释我.另外,也许可以告诉我如何获得目的地港口,当我有其IP地址.还有代码:
public class VPN extends VpnService implements Handler.Callback, Runnable {
private static final String TAG = "VpnService";
private String mServerAddress = "127.0.0.1";
private int mServerPort = 55555;
private Handler mHandler;
private Thread mThread;
private ParcelFileDescriptor mInterface;
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
if (mHandler == null) {
mHandler = new Handler(this);
}
if (mThread != null) {
mThread.interrupt();
}
mThread = new …Run Code Online (Sandbox Code Playgroud) 我正在尝试以正确的方式学习OOP和OOD原则.我想对Liskov替换原则及其PRE和POST条件做一些澄清.我在这里阅读了一些主题,一些文章来自http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod等地方.
我已经编写了一个简单的基类和几个示例子类,我的假设是关于它们的前后条件,我想知道它们是否正确.注释行是我的想法:是否违反了PRE和POST条件.
public abstract class BaseClass
{
public virtual int GetResult(int x, int y)
{
if (x > 10 && y < 20)
{
return y - x;
}
throw new Exception();
}
}
public class LSPExample1 : BaseClass
{
public override int GetResult(int x, int y)
{
// PRE: weakened pre condition is ok
if (x > 10 && y <= 15)
{
// POST: Is it ok? because the available result range is narrowed by y …Run Code Online (Sandbox Code Playgroud) 我需要从控制器获取数据到View作为JSON格式,但它不起作用,我不明白为什么.
我的控制器(我在索引操作上请求它):
public class HomeController : Controller
{
CompanyTicketsDb _db = new CompanyTicketsDb();
public ActionResult Index()
{
var model =
_db.Tickets
.Select(r => new TicketListViewModel
{
Id = r.Id,
Name = r.Name,
Description = r.Description,
CompanyName = r.CompanyName,
Status = r.Status,
CompanyId = r.CompanyId,
});
if (Request.AcceptTypes.Contains("application/json"))
{
return Json(model, JsonRequestBehavior.AllowGet );
}
return View(model);
}
}
Run Code Online (Sandbox Code Playgroud)
而我的观点(这是局部视图)看起来像是(测试模式):
@model IEnumerable<MvcApplication4.Models.TicketListViewModel>
<button id="Button1">asd</button>
@section scripts {
<script src="~/Scripts/knockout-3.2.0.js"></script>
<script>
$(document).ready(function () {
$("#Button1").click(function (evt) {
type: 'GET'
url = '/';
dataType …Run Code Online (Sandbox Code Playgroud)