发送端 client.c
//server1 发送数据
#include "stock.h"
#define MYPORT 8866 /*定义端口为8866*/
int main(int argc,char *argv[])
{
int sockfd,n,m;
struct sockaddr_in server_addr;
struct hostent *host;
//保证输入2个参数
if(argc!=2)
{
printf("Usage:%s server_ip server_port\n",argv[0]);
exit(1);
}
//gethostbyname可通过名称得到主机的IP地址
host=gethostbyname(argv[1]);
//创建套接字
sockfd=socket(AF_INET,SOCK_DGRAM,0);
if(sockfd<0)
{
printf("Socket Error:%s\n",strerror(errno));
exit(1);
}
//填充服务端的资料
bzero(&server_addr,sizeof(struct sockaddr_in));
server_addr.sin_family=AF_INET;
server_addr.sin_port=htons(MYPORT);
server_addr.sin_addr=*((struct in_addr *)host->h_addr);
int i,j;
struct stock_a
{
int code; //股票代码
int bprice[10]; //标价
int price[10]; //现价
};
struct stock_a M[100];
//randrom seed
srand(time(0));
///初始化100只股票///
for(i=0;i<100;i++)
{
//生成code
M[i].code=i;
//printf("%d\n",M[i].code);///打印股票代码
///生成价格//
for(j=0;j<10;j++)
{
M[i].bprice[j] = 100 + rand()%100;
M[i].price[j]=100 + rand()%100;
//printf(" %d %d\n",M[i].price[j],M[i].bprice[j]);
}
}
/*向服务器端发送数据报*/
int t;
char msg[1024];
for(i=0;i<100;i++)
{
for(j=0;j<3;j++)
{
if(j==0)
{
sprintf(msg,"%d",M[i].code);//转化成字符串,发送code
n=sendto(sockfd,msg,sizeof(msg),0,(struct sockaddr *)&server_addr,sizeof(struct sockaddr));
usleep(10000);
//发送失败
if(n<0)
{
printf("send code error!");
}
}
else if(j==1)
{
for(t=0;t<10;t++)
{
sprintf(msg,"