Я пытаюсь передать растровое изображение от клиента на сервер, используя привязку wcf и net.tcp.
Вот мой код на данный момент ... пожалуйста, предложите, как было бы лучше всего сделать так, чтобы это потоковое изображение отображалось?
public void ScreenShot()
{
...
System.Drawing.Bitmap gdiBitmap = new System.Drawing.Bitmap(pictureBox1.Image);
apc.server.return_screenshot(name, gdiBitmap);
///The socket connection was aborted.
///This could be caused by an error processing your message or a receive timeout
///being exceeded by the remote host, or an underlying network resource issue.
///Local socket timeout was '00:00:59.9700000'.
}
...
[ServiceContract(Namespace = "server",
CallbackContract = typeof(IfaceServer2Client),
SessionMode = SessionMode.Required)]
public interface IfaceClient2Server ///// what comes from the client to the server.
{
[OperationContract(IsOneWay = true)]
void StartConnection(string clientName);
[OperationContract(IsOneWay = true)]
void Message_Cleint2Server(string msg);
[OperationContract(IsOneWay = true)]
void ret_listDrives(string n, List<TreeNode> nodeList);
[OperationContract(IsOneWay = true)]
void return_screenshot(string n, Bitmap img); /// <- here I'm trying to pass the bitmap.
}
public interface IfaceServer2Client ///// what goes from the sertver, to the client.
{
[OperationContract(IsOneWay = true)]
void AcceptConnection();
[OperationContract(IsOneWay = true)]
void RejectConnection();
[OperationContract(IsOneWay = true)]
void Message_Server2Client(string msg);
[OperationContract(IsOneWay = true)]
void cmd_listDrives();
[OperationContract(IsOneWay = true)]
void cmd_changeName(string n);
[OperationContract(IsOneWay = true)]
void cmd_screenshot();
}
Спасибо!
редактирование:
private void Form1_Load(object sender, EventArgs e)
{
duplex = new ServiceHost(typeof(ServerClass));
NetTcpBinding tcp = new NetTcpBinding();
duplex.AddServiceEndpoint(typeof(IfaceClient2Server), tcp, "net.tcp://localhost:9080/service");
duplex.Open();
}