スマートフォンで実行されているiOSアプリケーションからデータ(文字列)を受信するJavaサーバーを実装する必要があります。
残念ながら、私は同じようなシナリオで作業したことがないので、誰かがどこから始めればよいか(または調べるための情報リソース)を教えてくれるかどうか疑問に思いました。
ここに、ソケットの作成とデータの送信に使用されるiosコードがあります。
-(bool)createSocket {
sock = 0;
if ((sock = socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP)) == -1) {
NSLog(@"Failed to create socket, error=%s", strerror(errno));
return false;}
else {
return true;
NSLog(@"Socket created");
}
}
-(bool) send:(NSString*) msg ipAddress:(NSString*) ip port:(int) p
{
struct sockaddr_in destination;
unsigned int echolen;
int broadcast = 1;
if (socketCreated==false) {
NSLog(@"Socket assente");
return false;
}
else
{
/* Construct the server sockaddr_in structure */
memset(&destination, 0, sizeof(destination));
/* Clear struct */
destination.sin_family = AF_INET;
/* Internet/IP */
destination.sin_addr.s_addr = inet_addr([ip UTF8String]);
/* IP address */
destination.sin_port = htons(p);
/* server port */
setsockopt(sock,
IPPROTO_IP,
IP_MULTICAST_IF,
&destination,
sizeof(destination));
char *cmsg = [msg UTF8String];
echolen = strlen(cmsg);
// this call is what allows broadcast packets to be sent:
if (setsockopt(sock,
SOL_SOCKET,
SO_BROADCAST,
&broadcast,
sizeof broadcast) == -1)
{
perror("setsockopt (SO_BROADCAST)");
exit(1);
}
if (sendto(sock,
cmsg,
echolen,
0,
(struct sockaddr *) &destination,
sizeof(destination)) != echolen)
{
printf("Mismatch in number of sent bytes\n");
return false;
}
else
{
NSLog([NSString stringWithFormat:@"-> Tx: %@",msg]);
return true;
}
}
}
前もって感謝します