Yeah, as you mentioned, my socket is TCP.
Should I change it to UDP or can I do something to improve the existing situation by changing TCP Socket?
******************my code in NIOS II******************# include <stdio.h># include <string.h># include <ctype.h># include "includes.h"# include "simple_socket_server.h"# include "alt_error_handler.h"# include "ipport.h"# include "tcpport.h"# define MAXDATASIZE 1450
void SSSSimpleSocketServerTask()
{
int fd_listen;// max_socket
int fd_listen1;
int long bytes_sent;
int long bytes_recv;
int nSendBufSize=SSS_TX_BUF_SIZE;
struct sockaddr_in server_addr;
struct sockaddr_in client_addr;
fd_listen = socket(AF_INET, SOCK_STREAM, 0);
setsockopt(fd_listen,SOL_SOCKET,SO_SNDBUF,(char * )&nSendBufSize,sizeof(int));
if (fd_listen< 0)
{
alt_NetworkErrorHandler(EXPANDED_DIAGNOSIS_CODE,"[sss_task] Socket creation failed");
}
else
{
printf("Socket created");
}
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(SSS_PORT);
server_addr.sin_addr.s_addr = INADDR_ANY;
memset(&(server_addr.sin_zero), '\0', 8);
if ((bind(fd_listen,(struct sockaddr *)&server_addr,sizeof(server_addr))) < 0)
{
alt_NetworkErrorHandler(EXPANDED_DIAGNOSIS_CODE,"[sss_task] Bind failed");
}
else
{
printf("Bind is OK\n");
}
if ((listen(fd_listen,5)) < 0)
{
alt_NetworkErrorHandler(EXPANDED_DIAGNOSIS_CODE,"[sss_task] Listen failed");
}
else
{
printf("Listen is OK\n");
}
int client_addrlen;
client_addrlen=sizeof(client_addr);
fd_listen1 = accept(fd_listen,(struct sockaddr *)&client_addr,&client_addrlen);
while(1)
{
if(fd_listen1<0)
{
alt_NetworkErrorHandler(EXPANDED_DIAGNOSIS_CODE,"[sss_task] Accept creation failed");
}
else
{
printf("accepted connection request\n");
}
fd_listen = fd_listen1;
break;
}
printf("Server: Sending some test data to client...\n");
char sendbuf[MAXDATASIZE] = "Bjtuxuxu Love FPGA!";
char recvbuf[200] = "Bjtu";
while(1)
{
bytes_sent = send(fd_listen,sendbuf,SSS_BUF_LEN,0);
}
if(bytes_sent<0)
{
alt_NetworkErrorHandler(EXPANDED_DIAGNOSIS_CODE,"[sss_task] Send failed");
}
else
{
printf("SERVER : Send is OK \n");
printf("SERVER : Bytes sent:%ld.\n",bytes_sent);
}
bytes_recv = recv(fd_listen,recvbuf,200,0);
if(bytes_recv<0)
{
alt_NetworkErrorHandler(EXPANDED_DIAGNOSIS_CODE,"[sss_task] Recv failed");
}
else
{
printf("SERVER: recv() is OK.\n");
printf("SERVER: Received data is: \"%s\"\n", recvbuf);
printf("SERVER: Bytes received: %ld.\n", bytes_recv);
}
return ;
}
******************my code in NIOS II******************
Thanks for your reply.