간단한 클라이언트 및 서버 구현에서 [Named-Pipe-Wrapper] 라이브러리 v1.4를 사용하는 방법에 대한 작업 예제가 필요합니다.Named-pipe-wrapper 라이브러리 작업 예제
Named-Pipe-Wrapper 라이브러리 v1.4를 사용하여 클라이언트와 서버간에 메시지를 보내고받는 데 문제가 있습니다. 클라이언트가 연결되었지만 클라이언트와 서버간에 전송 된 메시지가 제대로 전달되지 않습니다.
내가 뭘 잘못하고 있니?
이 라이브러리를 선택한 이유는 객체를 직렬화 및 직렬화 해제하지 않고도 클라이언트와 서버간에 강력한 유형의 객체를 전달하기가 쉬운 것처럼 보였기 때문입니다.
다음은 테스트 목적으로 함께 작성한 코드입니다. 나는이 작품 네이티브 데이터 형식을 사용하는 경우
class Program
{
static void Main(string[] args)
{
var server = new NamedPipeServer<Message>("MyPipe");
server.ClientConnected += delegate (NamedPipeConnection<Message, Message> conn)
{
Console.WriteLine("Client {0} is now connected!", conn.Id);
};
server.ClientMessage +=
delegate (NamedPipeConnection<Message, Message> conn, Message message)
{
Console.WriteLine("Client {0} message received !", conn.Id);
Console.WriteLine("Client {0} says: {1}", conn.Id, message.Text);
conn.PushMessage(new Message() { Text = "HELLO from server" });
};
server.Start();
var client = new NamedPipeClient<Message>("MyPipe");
client.ServerMessage +=
delegate (NamedPipeConnection<Message, Message> conn, Message message)
{
Console.WriteLine("Server says: {0}", message.Text);
};
client.Start();
//client.WaitForConnection(1000);
client.PushMessage(new Message() { Text = "HELLO from client" });
Console.ReadLine();
}
}
public class Message
{
public string Text { get; set; }
}
업데이트 , 나는 기본 유형과 간단한 클래스를 사용하지만 때 작동하지 않습니다.
업데이트 2 코드는 소리가 들었지만 Message 클래스에 [serializable] 특성을 추가해야합니다.
** 디버깅 ** 코드를 사용해 보셨나요? –
예, 클라이언트가 연결되었다는 알림 만받습니다. 메시지가 전달되지 않습니다. 이것과 다른 것을보고 있습니까? – TheLegendaryCopyCoder
명명 된 파이프 서비스가 실행되고 있습니까? –