static void Main(string[] args) { _client = KClient.Initialize("52c85313-8203-4963-b984-c5d249320a62", 5); var timer = new Timer(PrintData, "auto", 0, 6000); Thread.Sleep(100000); }
void cmdStartServers_Click(object sender, EventArgs e) { if (CheckServerFields() && _kClient == null && _kTracker == null) { var ipa = IPAddress.Parse(cboPossibleAddresses.Text); int trackerPort, kcPort; trackerPort = Convert.ToInt32(txtTrackerServerPort.Text); kcPort = Convert.ToInt32(txtKClientPort.Text); _kTracker = new TrackerServer(new IPEndPoint(ipa, trackerPort)); _kClient = new KClient(_kTracker, new IPEndPoint(ipa, kcPort)); _kTracker.Logger = this; _kClient.Logger = this; _kTracker.Listen(); _kClient.Listen(); Log("启动完成。本地参数: KClient=" + cboPossibleAddresses.Text + ":" + kcPort.ToString() + ", KTracker=" + cboPossibleAddresses.Text + ":" + trackerPort.ToString()); txtTrackerURL.Text = "http://localhost:" + txtTrackerServerPort.Text + _kTracker.AnnouceUrl.TrimEnd('?'); txtLocalKClientAddrAndPort.Text = cboPossibleAddresses.Text + ":" + txtKClientPort.Text; groupBox1.Enabled = false; groupBox2.Enabled = true; groupBox4.Enabled = true; } else { Log("本地服务器设置错误。"); } }
public async Task Send_PostWithObject_returns_201() { var request = new KRequest(HttpMethod.Post, new Uri(_uri)); request.SetContent(new { Id = 1, Name = "Test" }); var client = new KClient(); var results = await client.SendAsync(request); Assert.True(results.First().Response.StatusCode == HttpStatusCode.Created); }
public async Task Send_Get_returns_200() { var request = new KRequest(HttpMethod.Get, new Uri(_uri)); var client = new KClient(3, 2, 2); //First batch with 2 requests and a second 500ms later with 1 request, with two iterations (=> total 6 requests) var results = await client.SendAsync(request); Assert.True(results.Count() == client.RequestsPerSecond * client.Repetition); Assert.DoesNotContain(results, r => r.Response.StatusCode != HttpStatusCode.OK); Assert.DoesNotContain(results, r => r.ElapsedTime > 1000); }
public async Task Send_GetWithReportWithResponseBody_returns_true() { var request = new KRequest(HttpMethod.Get, new Uri(_uri)); var client = new KClient(); string reportFile = Path.Combine(Directory.GetCurrentDirectory(), $"KReport_{DateTime.Today:yyyy-MM-dd}__{Guid.NewGuid()}.csv"); var results = await client.SendAsync(request); await KLog.ReportAsync(results, reportFile); Assert.True(File.Exists(reportFile)); }
public async Task Send_GetWithHeader_returns_200() { var headers = new Dictionary <string, string> { { "Authorization", "Bearer xyz" } }; var request = new KRequest(HttpMethod.Get, new Uri(_uri), headers); var client = new KClient(); var results = await client.SendAsync(request); Assert.True(results.First().Response.StatusCode == HttpStatusCode.OK); }
public async Task Send_PostWithByteArrays_returns_201() { var request = new KRequest(HttpMethod.Post, new Uri(_uri)); request.SetContent(new List <byte[]>() { GetTestTextFileAsByteArray(), GetTestTextFileAsByteArray() }); var client = new KClient(); var results = await client.SendAsync(request); Assert.True(results.First().Response.StatusCode == HttpStatusCode.Created); }
void cmdStartServers_Click(object sender, EventArgs e) { if (_kClient == null || _kTracker == null) { if (CheckServerFields()) { IPAddress ipa; _wasStartedAsPI = KeiGuiOptions.Current.IsPointInsertion; if (KeiGuiOptions.Current.IsPointInsertion || (false && KeiGuiOptions.Current.UsePortMapping)) { // 作为接入点或者启用了 UPnP 的普通用户启动 ipa = IPAddress.Parse(cboPossibleAddresses.Text.Split(' ')[0]); } else { // 作为普通用户启动 ipa = IPAddress.Loopback; } var nTracker = Convert.ToInt32(txtLocalTrackerServerPort.Text); var nKClient = Convert.ToInt32(txtLocalKClientPort.Text); var trackerEndPoint = new IPEndPoint(ipa, nTracker); var kcEndPoint = new IPEndPoint(ipa, nKClient); if (_kTracker == null) { _kTracker = new TrackerServer(trackerEndPoint); } if (_kClient == null) { _kClient = new KClient(_kTracker, kcEndPoint); _kClient.ConnectionListChanged += _kClient_ConnectionListChanged; } //if (!_kTracker.IsBound) //{ // if (!_kTracker.TestBind(trackerEndPoint)) // { // MessageBox.Show("Tracker 服务器端口不可用,请设置一个新的端口。", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); // _kTracker = null; // return; // } //} //txtLocalTrackerServerPort.Enabled = false; //if (!_kClient.IsBound) //{ // if (!_kClient.TestBind(kcEndPoint)) // { // MessageBox.Show("K客户端服务器端口不可用,请设置一个新的端口。", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Exclamation); // _kClient = null; // return; // } //} //txtLocalKClientPort.Enabled = false; if (KeiGuiOptions.Current.EnableLogging) { _kTracker.Logger = Program.Logger; _kClient.Logger = Program.Logger; } if (KeiGuiOptions.Current.IsPointInsertion) { _kClient.FreeToGo = true; _kTracker.FreeToGo = true; } _kTracker.Listen(); if (KeiGuiOptions.Current.IsPointInsertion) { // 接入点立即启动,普通用户要连接到接入点后才能启动 _kClient.Listen(); } groupBox1.Enabled = false; groupBox2.Enabled = true; txtLocalKClientEndPoint.Text = _kClient.LocalKEndPoint.ToString(); txtLocalTrackerAddress.Text = "http://localhost:" + _kTracker.LocalEndPoint.Port.ToString() + _kTracker.AnnouceUrl.TrimEnd('?'); SetStatusText("服务器已启动"); KGState = KeiGuiState.ServersStarted; } } }