本文整理汇总了C#中RegressionTests.Shared.TcpConnection.Send方法的典型用法代码示例。如果您正苦于以下问题:C# TcpConnection.Send方法的具体用法?C# TcpConnection.Send怎么用?C# TcpConnection.Send使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类RegressionTests.Shared.TcpConnection
的用法示例。
在下文中一共展示了TcpConnection.Send方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: TestExcessiveDataInIMAPConversation
public void TestExcessiveDataInIMAPConversation()
{
var sb = new StringBuilder();
for (int i = 0; i < 100000; i++)
{
sb.Append("1234567890");
}
sb.Append(".com\r\n");
string command = "A03 NOOP " + sb;
var socket = new TcpConnection();
CustomAssert.IsTrue(socket.Connect(143));
socket.Receive();
socket.Send(command);
try
{
string response = socket.Receive();
CustomAssert.IsTrue(response.StartsWith("* BYE"));
}
catch (System.IO.IOException ex)
{
AssertIsConnectionTerminatedException(ex);
}
socket.Disconnect();
}
示例2: Send100MBMessage
public void Send100MBMessage()
{
long memoryUsage = Shared.GetCurrentMemoryUsage();
_application.Settings.MaxMessageSize = 0;
TcpConnection socket = new TcpConnection();
socket.Connect(25);
socket.Receive();
socket.Send("HELO test.com\r\n");
socket.Receive();
// Build a large string...
StringBuilder sb = new StringBuilder();
sb.Append("A01");
for (int i = 0; i < 10000; i++)
{
sb.Append("01234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890\r\n");
}
int length = sb.Length;
sb.Append(Environment.NewLine);
socket.Send("MAIL FROM: [email protected]\r\n");
socket.Receive();
socket.Send("RCPT TO: [email protected]\r\n");
socket.Receive();
socket.Send("DATA\r\n");
socket.Receive();
for (int i = 1; i <= 100; i++)
{
Shared.AssertLowMemoryUsage(memoryUsage + 30);
try
{
socket.Send(sb.ToString());
}
catch (Exception)
{
return;
}
if ((i % 10) == 0)
{
TestTracer.WriteTraceInfo("{0}/{1}", i, 1000);
}
}
socket.Send("\r\n.\r\n");
string result = socket.Receive();
Assert.IsTrue(result.StartsWith("250"));
socket.Send("QUIT\r\n");
result = socket.Receive();
socket.Disconnect();
Pop3ClientSimulator.AssertMessageCount(_domain.Accounts[0].Address, "test", 1);
}
示例3: AuthShouldUpdateLastLogonTime
public void AuthShouldUpdateLastLogonTime()
{
Account account = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "[email protected]", "test");
DateTime lastLogonTimeBefore = Convert.ToDateTime(account.LastLogonTime);
Thread.Sleep(1000);
var sock = new TcpConnection();
sock.Connect(25);
CustomAssert.IsTrue(sock.Receive().StartsWith("220"));
sock.Send("EHLO test.com\r\n");
CustomAssert.IsTrue(sock.Receive().StartsWith("250"));
string base64EncodedUsername = EncodeBase64("[email protected]");
sock.Send("AUTH LOGIN " + base64EncodedUsername + "\r\n");
CustomAssert.IsTrue(sock.Receive().StartsWith("334"));
sock.Send(EncodeBase64("test") + "\r\n");
CustomAssert.IsTrue(sock.Receive().StartsWith("235"));
DateTime lastLogonTimeAfter =
Convert.ToDateTime(SingletonProvider<TestSetup>.Instance.GetApp().Domains[0].Accounts[0].LastLogonTime);
CustomAssert.AreNotEqual(lastLogonTimeBefore, lastLogonTimeAfter);
}
示例4: AssertValidMailRcptToCommand
private void AssertValidMailRcptToCommand(string comamnd)
{
var smtpClientSimulator = new TcpConnection();
smtpClientSimulator.Connect(25);
Assert.IsTrue(smtpClientSimulator.Receive().StartsWith("220"));
smtpClientSimulator.Send("HELO test\r\n");
Assert.IsTrue(smtpClientSimulator.Receive().StartsWith("250"));
smtpClientSimulator.Send("MAIL FROM: <[email protected]>\r\n");
Assert.IsTrue(smtpClientSimulator.Receive().StartsWith("250"));
string result = smtpClientSimulator.SendAndReceive(comamnd + "\r\n");
smtpClientSimulator.Disconnect();
Assert.AreEqual("250 OK\r\n", result);
}
示例5: TestPOP3DownloadOfLargeMessage
public void TestPOP3DownloadOfLargeMessage()
{
Send100MBMessage();
Pop3ClientSimulator.AssertMessageCount("[email protected]", "test", 1);
TcpConnection socket = new TcpConnection();
socket.Connect(110);
// Receive welcome message.
socket.Receive();
socket.Send("USER " + "[email protected]" + "\r\n");
socket.ReadUntil("+OK");
socket.Send("PASS " + "test" + "\r\n");
socket.ReadUntil("+OK");
socket.Send("RETR 1\r\n");
var endOfResponseSB = new StringBuilder();
string endOfResponse = "";
while (endOfResponse.IndexOf("\r\n.\r\n") < 0)
{
if (endOfResponse.IndexOf("-ERR no such message") >= 0)
{
socket.Disconnect();
Assert.Fail("Nope");
}
endOfResponseSB.Append(socket.Receive());
if (endOfResponseSB.Length > 100)
endOfResponseSB.Remove(0, endOfResponseSB.Length - 100);
endOfResponse = endOfResponseSB.ToString();
}
socket.Send("DELE 1\r\n");
socket.ReadUntil("+OK");
socket.Send("QUIT\r\n");
socket.ReadUntil("+OK");
socket.Disconnect();
}
示例6: TestLongLineInPOP3Conversation
public void TestLongLineInPOP3Conversation()
{
var sb = new StringBuilder();
for (int i = 0; i < 400; i++)
{
sb.Append("1234567890");
}
sb.Append(".com");
string command = "NOOP " + sb;
var socket = new TcpConnection();
Assert.IsTrue(socket.Connect(110));
socket.Receive();
socket.Send(command + "\r\n");
string response = socket.Receive();
Assert.IsTrue(response.StartsWith("-ERR Line too long."));
socket.Disconnect();
}
示例7: TestTooManyInvalidCommandsAUTH
public void TestTooManyInvalidCommandsAUTH()
{
Application application = SingletonProvider<TestSetup>.Instance.GetApp();
Settings settings = _settings;
settings.DisconnectInvalidClients = true;
settings.MaxNumberOfInvalidCommands = 3;
var sim = new TcpConnection();
sim.Connect(25);
sim.Send("EHLO test.com\r\n");
for (int i = 1; i <= 6; i++)
{
try
{
sim.Send("AUTH LOGIN\r\n");
string result = sim.Receive();
if (result.Contains("Too many invalid commands"))
return;
if (i > 5)
break;
sim.Send("YWNhZGVtaWE=\r\n");
sim.Receive();
sim.Send("abc\r\n");
sim.Receive();
}
catch (Exception)
{
if (i < 5)
{
CustomAssert.Fail("Was disconnected prematurely.");
}
return;
}
}
CustomAssert.Fail("Wasn't disconnected");
}
示例8: TestRcptToSyntax
public void TestRcptToSyntax()
{
Account account1 = SingletonProvider<TestSetup>.Instance.AddAccount(_domain, "[email protected]", "test");
var oSMTP = new TcpConnection();
oSMTP.Connect(25);
CustomAssert.IsTrue(oSMTP.Receive().StartsWith("220"));
oSMTP.Send("HELO test\r\n");
CustomAssert.IsTrue(oSMTP.Receive().StartsWith("250"));
// A few tests of invalid syntax.
CustomAssert.IsTrue(oSMTP.SendAndReceive("MAIL FROM: <[email protected]>\r\n").StartsWith("250"));
CustomAssert.IsFalse(oSMTP.SendAndReceive("RCPT TO: [email protected]>\r\n").StartsWith("250"));
CustomAssert.IsFalse(oSMTP.SendAndReceive("RCPT TO: <[email protected]\r\n").StartsWith("250"));
CustomAssert.IsFalse(oSMTP.SendAndReceive("RCPT TO <[email protected]\r\n").StartsWith("250"));
CustomAssert.IsFalse(oSMTP.SendAndReceive("RCPT TO<[email protected]\r\n").StartsWith("250"));
CustomAssert.IsTrue(oSMTP.SendAndReceive("RCPT TO: <[email protected]>\r\n").StartsWith("250"));
CustomAssert.IsTrue(oSMTP.SendAndReceive("RCPT TO: [email protected]\r\n").StartsWith("250"));
oSMTP.Disconnect();
}
示例9: TestHelo
public void TestHelo()
{
var oSimulator = new TcpConnection();
oSimulator.Connect(25);
string sWelcome = oSimulator.Receive();
oSimulator.Send("HELO\r\n");
string sResponse = oSimulator.Receive();
if (!sResponse.StartsWith("501"))
throw new Exception("Invalid response to HELO");
oSimulator.Send("HELO \r\n");
sResponse = oSimulator.Receive();
if (!sResponse.StartsWith("501"))
throw new Exception("Invalid response to HELO");
oSimulator.Send("HELO TEST.COM\r\n");
sResponse = oSimulator.Receive();
if (!sResponse.StartsWith("250"))
throw new Exception("Invalid response to HELO");
oSimulator.Send("HELO TEST.COM\r\n");
sResponse = oSimulator.Receive();
if (!sResponse.StartsWith("250"))
throw new Exception("Invalid response to HELO");
oSimulator.Send("EHLO TEST.COM\r\n");
sResponse = oSimulator.Receive();
if (!sResponse.StartsWith("250"))
throw new Exception("Invalid response to HELO");
oSimulator.Send("EHLO TEST.COM\r\n");
sResponse = oSimulator.Receive();
if (!sResponse.StartsWith("250"))
throw new Exception("Invalid response to HELO");
oSimulator.Disconnect();
}
示例10: TestSendToTooManyRecipients
public void TestSendToTooManyRecipients()
{
hMailServer.Accounts accounts = _domain.Accounts;
SingletonProvider<TestSetup>.Instance.AddAccount(accounts, string.Format("[email protected]"), "test");
var sock = new TcpConnection();
sock.Connect(25);
sock.ReadUntil("\r\n");
string result;
sock.Send("EHLO test.com\r\n");
result = sock.ReadUntil("\r\n");
Assert.IsTrue(result.StartsWith("250"));
sock.Send("MAIL FROM: [email protected]\r\n");
result = sock.ReadUntil("\r\n");
Assert.IsTrue(result.StartsWith("250"));
const int recipientCount = 51000;
for (int i = 1; i <= recipientCount; i++)
{
string address = string.Format("test{0}@gmail.com", i);
sock.Send(string.Format("RCPT TO: <{0}>\r\n", address));
result = sock.ReadUntil("\r\n");
if (i <= 50000)
{
Assert.IsTrue(result.StartsWith("250"));
}
else
{
Assert.IsFalse(result.StartsWith("250"));
}
if (i % 100 == 0)
{
TestTracer.WriteTraceInfo("{0}/{1}", i, recipientCount);
}
}
}
示例11: TestLongSMTPDataSessionWithoutNewline
public void TestLongSMTPDataSessionWithoutNewline()
{
long memoryUsage = Shared.GetCurrentMemoryUsage();
var socket = new TcpConnection();
socket.Connect(25);
socket.Receive();
socket.Send("HELO test.com\r\n");
socket.Receive();
// Build a large string...
var sb = new StringBuilder();
sb.Append("A01");
for (int i = 0; i < 10000; i++)
{
sb.Append("01234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890");
}
socket.Send("MAIL FROM: [email protected]\r\n");
socket.Receive();
socket.Send("RCPT TO: [email protected]\r\n");
socket.Receive();
socket.Send("DATA\r\n");
socket.Receive();
for (int i = 1; i <= 1000; i++)
{
Shared.AssertLowMemoryUsage(memoryUsage + 30);
try
{
socket.Send(sb.ToString());
}
catch (Exception)
{
return;
}
if ((i%10) == 0)
{
TestTracer.WriteTraceInfo("{0}/{1}", i, 1000);
}
}
socket.Send("\r\n.\r\n");
string result = socket.Receive();
Assert.IsTrue(result.StartsWith("554 Too long line was received. Transmission aborted."));
socket.Send("QUIT\r\n");
socket.Receive();
socket.Disconnect();
}
示例12: TestLongSMTPDataSessionIncludingNewline
public void TestLongSMTPDataSessionIncludingNewline()
{
long memoryUsage = Shared.GetCurrentMemoryUsage();
_application.Settings.MaxMessageSize = 0;
var socket = new TcpConnection();
socket.Connect(25);
socket.Receive();
socket.Send("HELO test.com\r\n");
socket.Receive();
// Build a large string...
var sb = new StringBuilder();
sb.Append("A01");
for (int i = 0; i < 10000; i++)
{
sb.Append("01234567890012345678900123456789001234567890012345678900123456789001234567890012345678900123456789001234567890\r\n");
}
sb.Append(Environment.NewLine);
socket.Send("MAIL FROM: [email protected]\r\n");
socket.Receive();
socket.Send("RCPT TO: [email protected]\r\n");
socket.Receive();
socket.Send("DATA\r\n");
socket.Receive();
for (int i = 0; i < 100; i++)
{
Shared.AssertLowMemoryUsage(memoryUsage + 30);
try
{
socket.Send(sb.ToString());
}
catch (Exception)
{
return;
}
}
socket.Send("\r\n.\r\n");
string result = socket.Receive();
Assert.IsTrue(result.StartsWith("250"));
socket.Send("QUIT\r\n");
socket.Receive();
socket.Disconnect();
POP3ClientSimulator.AssertMessageCount(_domain.Accounts[0].Address, "test", 1);
}
示例13: TestExcessiveDataInPOP3Conversation
public void TestExcessiveDataInPOP3Conversation()
{
var sb = new StringBuilder();
for (int i = 0; i < 100000; i++)
{
sb.Append("1234567890");
}
string command = "HELP " + sb;
var socket = new TcpConnection();
CustomAssert.IsTrue(socket.Connect(110));
socket.Receive();
socket.Send(command + "\r\n");
try
{
string response = socket.Receive();
CustomAssert.IsTrue(response.StartsWith("-ERR"));
socket.Disconnect();
}
catch (IOException ex)
{
AssertIsConnectionTerminatedException(ex);
}
}
示例14: TestLongLineInSMTPConversation
public void TestLongLineInSMTPConversation()
{
var sb = new StringBuilder();
for (int i = 0; i < 400; i++)
{
sb.Append("1234567890");
}
sb.Append(".com");
string command = "HELO " + sb;
var socket = new TcpConnection();
CustomAssert.IsTrue(socket.Connect(25));
socket.Receive();
socket.Send(command + "\r\n");
string response = socket.Receive();
CustomAssert.IsTrue(response.StartsWith("500"));
socket.Disconnect();
}
示例15: TestSMTPServerAuthLoginUsernameAsThirdParameter
public void TestSMTPServerAuthLoginUsernameAsThirdParameter()
{
_settings.AllowSMTPAuthPlain = true;
var sock = new TcpConnection();
sock.Connect(25);
CustomAssert.IsTrue(sock.Receive().StartsWith("220"));
sock.Send("EHLO test.com\r\n");
CustomAssert.IsTrue(sock.Receive().StartsWith("250"));
string base64EncodedUsername = EncodeBase64(GetUsername());
sock.Send("AUTH LOGIN " + base64EncodedUsername + "\r\n");
CustomAssert.IsTrue(sock.Receive().StartsWith("334"));
sock.Send(EncodeBase64(GetPassword()) + "\r\n");
CustomAssert.IsTrue(sock.Receive().StartsWith("535"));
EnsureNoPassword();
}