?? ipxsend.c
字號:
#include <stdio.h>
#include <stdlib.h>
#include <mem.h>
#include <string.h>
#include <dos.h>
#include "ipx.h"
#define our_socket 0x4343
#define your_socket 0x5353
#define max_message 100
int send(void *packet_ptr,int packet_len)
{
int i,dest_connection_number,dest_socket;
unsigned char dest_network[4],dest_node[6];
struct IPXECB send_ecb;
struct IPXHEADER send_header;
memset(&send_ecb,0,sizeof(struct IPXECB));
send_ecb.socket_number=our_socket;
open_socket(our_socket);
dest_connection_number=get_1st_connection_num("ll");
get_internet_address(dest_connection_number,dest_network,dest_node);
dest_socket=your_socket;
i=get_local_target(dest_network,dest_node,dest_socket,send_ecb,immediate_address);
if (i!=0) return(0);
send_ecb.packet_count=2;
send_ecb.packet[0].address=&send_header;
send_ecb.packet[0].length=sizeof(struct IPXHEADER);
send_ecb.packet[1].address=packet_ptr;
send_ecb.packet[1].length=packet_len;
send_header.packet_type=4;
memcpy(send_header.dest_network_number,dest_network,4);
memcpy(send_header.dest_network_node,dest_node,6);
send_header.dest_network_socket=dest_socket;
ipx_send_packet(&send_ecb);
close(our_socket);
if (send_ecb.completion_code==0)
return (1);
else
return (0);
}
main()
{
int i,j,message_len;
char send_message[max_message];
unsigned int old_time;
j=0;
i=ipx_spx_installed();
if (i<0)
{
printf("!!IPX is not loaded, please load IPX first.\n")
return;
};
while(1)
{
print("IPX communication testing message(Type 'Exit' to quit):\n);
gets(sent_message);
if (!strcmp(send_message,"Exit")) break;
i=send(send_message,message_len+1);
if (i==1)
{
j=j+1;
printf("Message %d has been sent!\n\n",j);
}
else
{
printf("Fail to send!\n");
break;
}
old_time=get_interval_marker();
while(get_interval_marker()-old_time<19);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -