윈도우-리눅스 간의 소켓통신으로 실시간 데이터 전송하는 방법 질문입니다.

gomnutu의 이미지

현재 윈도우에서 C#으로 구현한 UI에서 버튼(방향키)의 값을 소켓을 통해 리눅스(Arm 보드)로 보내려고 합니다.

먼저 윈도우와 리눅스 사이에서 소켓통신이 먼저 되는지 확인하는게 순서겠지요?

여기서의 문제는 호환이 되는냐의 문제인데 함수명 몇개 다른거 빼고는 차이점이 거의 없다고 하더라구요.

그다음이 문제인데 실시간으로 방향키의 값을 어떻게 보내줄 수 있나요?

해본거라고는 채팅 프로그램과 같이 "Hello"을 치고 엔터를 치면 보내지고 그런 형식밖에 모르겠습니다.

그리고 방향키의 값은 데이터가 사라지면 안되니깐 TCP통신을 사용해야 할것 같구요...

ps) C#에서 구현된 UI 소스안에 그대로 winsok을 작성하면 되는지요?
아니면 winsok을 짜고 UI를 작성해야하나요?

익명 사용자의 이미지


윈도즈와 리눅스 사이의 소켓통신은 당연히 되죠.

통신을 위한 리눅스쪽 프로그램은 되어 있나요?

방향키 값은 윈도우와 리눅스 프로토콜 을 정해서 하면 됩니다.

C# 은 잘 모르겠네요..

gomnutu의 이미지

C, C++, C#, Linux 든지 상관없이

windows에서 C#로 client 와 server를 만들어서 테스트 해보고

Linux에서 client 와 server를 만들어서 각각 서로 잘 되는지 확인이 되면

Windows의 client와 Linux의 server를 테스트 해보면 바로 돌아갈까요???

shint의 이미지

이건 그냥 궁금해서 해본거예요.

1. C# 윈도우 프로젝트를 생성
2. Form1.cs 선택
3. 우측 아래 Properties - 번개 아이콘 선택 - KeyDown 빈공간 더블클릭

그러면. 자동으로 Form1.cs에 Form1_KeyDown 함수가 생성됩니다.
코드를 보고 싶으면.
좌측 Solution Explorer 에서 Form1.cs 마우스 우측 선택 - CodeView 선택
코드 상에는 아래와 같이 입력합니다.

서버가 없을 경우. 에러가 납니다.
에러 처리방법은 try catch 를 사용하던데요. Socket에서 F1 누르고 msdn 샘플 참고해보세요.

private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if(e.KeyValue == 65)
{
Socket c = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP);
IPAddress s = IPAddress.Parse("192.168.0.2");
c.Connect(new IPEndPoint(s, 1000));

// Send 'Hello World' to the server
byte[] buffer = Encoding.ASCII.GetBytes( e.KeyValue.ToString() );
c.Send(buffer);

MessageBox.Show( e.KeyValue.ToString() );
}
}

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

gomnutu의 이미지

이런식으로 소켓을 먼저 기본적으로 만들어 놓은뒤 사이사이에 버튼 같은거 추가해서 사용하면 되는것인가요??

shint의 이미지

저는 KeyDown을 버튼으로 사용했어요

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.