---
title: "W5200 client동작시 데이터 수신관련 문의드립니다"
url: "https://maker.wiznet.io/forum/9855"
markdown_url: "https://maker.wiznet.io/forum/9855/md"
type: "Forum topic"
category: "Ethernet Chips"
author: "ljh200216"
created: "2014-01-22T10:15:41+09:00"
last_activity: "2017-05-04T08:31:04+09:00"
language: "ko"
views: 469
replies: 0
source: "WIZnet Makers forum (https://maker.wiznet.io/forum/)"
---

# W5200 client동작시 데이터 수신관련 문의드립니다

## Question

Asked by ljh200216 on 2014-01-22 in Ethernet Chips.

안녕하세요. 일단 w5200 tcp server로 동작하여 pc쪽에서 연결을하고 데이터를 보내면 잘 받아집니다.
문제는 w5200을 client로 놓고 데이터를 특정 ip대상으로 보낸후, 다시 그쪽에서 보낸 데이터를 받아야하는데
여기서 잘 받아지지가 않습니다…자꾸 엉뚱한 값이 나오는데 아래는 받는 부분 소스 입니다…
제가 뭘 놓치고 있는지 자꾸 0값만 돌아오네요…조언 좀 부탁 드리겠습니다…

void TCP_client_con_one()
{
uint8 cmd_uart[4]={0xf1,MSB,LSB,0xf2};
int chk;
chk = 1;
while(chk == 1)
{
socket(s,Sn_MR_TCP,port,mode); // open the SOCKET
switch(getSn_SR(s))
{

```
		case SOCK_INIT:                     // The SOCKET opened with TCP mode
			
			if(MSB!=B9){
			switch(LSB){ //LSB는 UART에서 수신된 명령어 입니다..
			                 case 0x01:connect(s, addr0, port);break;  //커넥션을 하구요..			 
                    			 default: break;
					 }
					 }
		
			wait_1ms(10);                			 

			if(getSn_SR(s)==SOCK_ESTABLISHED)  // connected
			{						 
				if (getSn_IR(s) & Sn_IR_CON) 			// Confirm if received the data
				{
				       send(s, cmd_uart, 4, 0);  //DATA SEND..잘 보내집니다..
					IINCHIP_WRITE(Sn_IR(s),Sn_IR_CON);	// clear Sn_IR_CON
					chk=0;
					wait_1ms(5);
                   
                            //이 부분이 문제 같은데 SERVER모드에서 데이터수신할때 쓰던 소스입니다..
			if( (len=getSn_RX_RSR(s)) > 0 )    // check the size of received data
			{
				if(len > MAX_BUF_SIZE) len = MAX_BUF_SIZE; //MAX_BUF_SIZE = 2048
				
                                    recv_len = recv(s, data_buf, len);	//수신함수 입니다..				        
				
				for(i=0;i<4;i++){
				 
				 P(data_buf[i]);         //받은 데이터를 UART로 뿌려주는 겁니다.
				 }
			
		     }

                }
			}											
			break;	
			
		default:
			break;

	} //switch

	if (chk != 0)
		close(s);          // close the SOCKET
   } //while

  }
```

---

Source: https://maker.wiznet.io/forum/9855
