当前位置: 代码迷 >> Web前端 >> Supersocket 怎么使用 教程1
  详细解决方案

Supersocket 怎么使用 教程1

热度:941   发布时间:2012-10-18 13:46:55.0
Supersocket 如何使用 教程1

This guide will introduce how to create a simple command line socket application using SupperSocket application framework.

?

About SuperSocket: http://www.cnblogs.com/jzywh/archive/2010/06/09/supersocket.html

?

1. Create a new project named “EchoService” in a new empty solution
2. Add the project “SocketServiceCore”(which is belong to SuperSocket) into the solution, and then let the project “EchoService” reference it
3. Add session class and server class
EchoSession.cs

EchoSession
<

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

>using?System;
using?System.Collections.Generic;
using?System.Linq;
using?System.Text;
using?SuperSocket.SocketServiceCore;

namespace?EchoService
{
????
public?class?EchoSession?:?AppSession<EchoSession>
????{
????????
private?SocketContext?m_Context;

????????
protected?override?void?OnClosed()
????????{
????????????
????????}

????????
protected?override?void?OnInit()
????????{
????????????m_Context?
=?new?SocketContext();
????????}

????????
public?override?void?SayWelcome()
????????{
????????????SendResponse(
"Welcome?to?EchoServer!");
????????}

????????
public?override?void?HandleExceptionalError(Exception?e)
????????{
????????????SendResponse(
"Server?side?error?occurred!");
????????}

????????
public?override?SocketContext?Context
????????{
????????????
get?{?return?m_Context;?}
????????}
????}
}



EchoServer.cs
EchoServer
<

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

>using?System;
using?System.Collections.Generic;
using?System.Linq;
using?System.Text;
using?SuperSocket.SocketServiceCore;

namespace?EchoService
{
????
public?class?EchoServer?:?AppServer<EchoSession>
????{
????????
public?override?bool?IsReady
????????{
????????????
get?{?return?true;?}
????????}
????}
}


?


4. Add command class

ECHO.cs
ECHO
<

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

>using?System;
using?System.Collections.Generic;
using?System.Linq;
using?System.Text;
using?SuperSocket.SocketServiceCore.Command;

namespace?EchoService.Command
{
????
public?class?ECHO?:?ICommand<EchoSession>
????{
????????
#region?ICommand<echosession>?Members</echosession>

????????
public?void?Execute(EchoSession?session,?CommandInfo?commandData)
????????{
????????????session.SendResponse(commandData.Param);
????????}

????????
#endregion
????}
}




5. Build the project “EchoService” and then copy outputted assemblies to the output dir of the project “SocketService” (provided by SupperSocket, build it in advance please)

6. Update app.config of SocketService to use EchoService
SuperSocket.SocketService.exe.config
<

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

>xml?version="1.0"?encoding="utf-8"??>
<configuration>
????
<configSections>
????????
<section?name="loggingConfiguration"
type
="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.LoggingSettings,?Microsoft.Practices.EnterpriseLibrary.Logging"?/>
????????
<section?name="socketServer"
type
="SuperSocket.SocketServiceCore.Configuration.SocketServiceConfig,?SuperSocket.SocketServiceCore"/>
????
>configSections>
????
<appSettings>
????
<add?key="ServiceName"?value="EchoService"/>
??
>appSettings>
????
<socketServer>
????????
<servers>
??????????
<add?name="Default?Echo?Server"?serviceName="EchoService"?ip="Any"?port="911"?mode="Async"?/>
????????
>servers>
????????
<services>
??????????
<add?serviceName="EchoService"?baseAssembly="EchoService.EchoServer,?EchoService"?/>
????????
>services>
????
>socketServer>????
????
<loggingConfiguration?name="Logging?Application?Block"?tracingEnabled="true"
???????defaultCategory
=""?logWarningsWhenNoCategoriesMatch="true">
????????
//Log?configuration
????>loggingConfiguration>
>configuration>

Please note the "socketServer" node in above code.

7. Click “RunServer.bat” and then enter “start” to start the server, then you can test the echo server by telnet (you also can click "InstallService.bat" to intsall the server application as windows service, the service name is defined in appSetting of app.config with the key "ServiceName")