전체 글 79

TcpListener와 TcpClient를 써봤다.

Socket 형식으로 어떻게 어떻게 하는 것보다 더 비용이 비싸지만 훨씬 간편하다. 서버쪽에서는 TcpListener, 클라이언트 쪽에서는 TcpClient를 사용한다. 여러 컴퓨터 간에 통신이 아니라 내 컴퓨터 안에서의 프로그램 간에 통신이라서 남이 보면 많이 싱거울 수 있겠다. 서버 측에서 해야 하는 일은 다음과 같다 : public static void Listen() { int port = 13000; IPAddress localaddr = IPAddress.Parse("127.0.0.1"); server = new TcpListener(localaddr, port); server.Start(); connect = server.AcceptTcpClientAsync(); } 1. 서버를 열어야 한다..

카테고리 없음 2021.08.22

함수 안에서 인식된 값이 함수 밖에서는 표시되지 않음

Javascirpt - Typescript Using Continue in JavaScript forEach() - Mastering JS Using Continue in JavaScript forEach() The `continue` keyword doesn't work with `forEach()`, but there are ways to skip to the next iteration of a `forEach()`. Here's how. masteringjs.io 퍼옴. 자바스크립트의 forEach문은 람다 식으로 쓰여있는 함수를 각 요소마다 실행시키는 방식이라 return을 사용하면 람다 식으로 실행된 함수가 종료되고 다음 요소의 함수가 실행된다. 따라서 return room은 함수를 진행시키기만..

카테고리 없음 2021.07.14

비어있어야 할 공간에 이상한 이미지가 로딩됨

발견 : 타일 시스템을 만들고 여러번 갈아엎다 어느 순간부터 나타나기 시작했다. 찾아본 부분 : 저 타일들의 지형 정보가 이상하게 입력되는가 하고 지형 대입하는 쪽을 찾아보았다. 이상 X. 지형 정보에 그림을 대입할 때 잘못 대입하는가 하고 그림 삽입하는 쪽을 찾아보았다. 이상 없음. 클릭해서 그 지형의 정보를 로그로 찍는 기능을 만들어서 사용해봤다. 비어있는 타일로 정보는 제대로 나온다. 문제 : newline.push(new Block(Terrain.wall, i, j)); 를 newline.push(new Block(Terrain.wall, j, i)); 로 썼다. new Block() 생성자의 인수로 x좌표와 y좌표를 거꾸로 주고 있었다. 왜 문제였는가 : 다른 지형은 거의 무작위로 그려지지만 벽..

카테고리 없음 2021.07.10

C언어 Release Build 디버그시 함수를 변형시키지 않도록 하려면

printf 함수를 중간에 하나라도 넣어놓으면 일단 함수를 실행해 주기는 한다. 끝. 다음은 사족과 딴소리다 : 디버그는 정말 좋다. 저런 알 수 없는 코드도 어떻게 동작하는지 쉽게 알 수 있기 때문이다. 빌드 모드는 Debug와 Release 모드가 있는데, 간단히 말하자면 Release 모드가 좀 더 최적화된 코드를 생성한다. 의미없는 반복은 없애고, 너무 짧은 함수는 합쳐 버리고 하는 식이다. 원래대로라면 Debug 모드와 Release 모드가 같은 동작을 해야 하겠지만, 최적화 때문에 함수가 다르게 실행되기도 한 다. 이 경우에 어디서 버그가 일어났는지를 확인하는 것은 매우 어려워지는데, 왜냐하면 변형된 코드가 실제로 있는 것이 아니기 때문이다. 그렇다면 어떻게 해야 변형된 코드에서 실행 순서를 ..

카테고리 없음 2021.07.03