Thanks for you explanation, It is very helpful. I think I have got some knowledge about the MicroBlaze and LwIP.
This morning I researched the c language codes of the echo_server project. Found that the data come in the server by a function defined as tcp_recved(), and then echo back by a function defined as tcp_write(). When the data get in the server, it seems to be saved in a buffer automatically. There is no control parameter in tcp_recved(). But in the write function tcp_write(), there is a input parameter p->payload to indicate that from where begin to send out the data.
So I think if I want to instead of sending back the echo, I can modify the input data of the tcp_write(). But here comes the questions.
1. How can I connect the data from Pmod to the input data of tcp_write(). The SDK seems totally be separated with the FPGA board. So Do I need add the Pmod port in the Vivado? The function tcp_write() always get data from the buffer, so if I add the Pmod, how can I put the data in the buffer, and how to control the pointer p->payload point to the location where my data is at.
2. I want to know is there a reference manual about how to use the SDK functions, it is not easy to figure out the meanings of all the functions and parameters used in the project.