static inline void client_send_data_raw(ClientInfo *client, const void *buf, unsigned int len) { if (client->data_con_type == FTP_DATA_CONNECTION_ACTIVE) { sceNetSend(client->data_sockfd, buf, len, 0); } else { sceNetSend(client->pasv_sockfd, buf, len, 0); } }
static inline void client_send_data_msg(ClientInfo *client, const char *str) { if (client->data_con_type == FTP_DATA_CONNECTION_ACTIVE) { sceNetSend(client->data_sockfd, str, strlen(str), 0); } else { sceNetSend(client->pasv_sockfd, str, strlen(str), 0); } }
static void blob_transfer_via_net(blob_t *blob) { size_t path_size; path_size = strlen(blob->path); sceNetSend(blobs_sockfd, &path_size, sizeof(path_size), 0); sceNetSend(blobs_sockfd, &blob->path[0], path_size, 0); sceNetSend(blobs_sockfd, &blob->size, sizeof(blob->size), 0); sceNetSend(blobs_sockfd, &blob->data[0], blob->size, 0); }
/** * UDP printf for debugnet library * * @par Example: * @code * debugNetUDPPrintf("This is a test\n"); * @endcode */ void debugNetUDPPrintf(const char* fmt, ...) { char buffer[0x800]; va_list arg; va_start(arg, fmt); sceClibVsnprintf(buffer, sizeof(buffer), fmt, arg); va_end(arg); sceNetSend(SocketFD, buffer, strlen(buffer), 0); }
int _main(void) { // Init and resolve libraries initKernel(); initLibc(); initNetwork(); // Connect to server char socketName[] = "debug"; struct sockaddr_in server; server.sin_len = sizeof(server); server.sin_family = AF_INET; server.sin_addr.s_addr = IP(192, 168, 0, 4); server.sin_port = sceNetHtons(9023); memset(server.sin_zero, 0, sizeof(server.sin_zero)); int sock = sceNetSocket(socketName, AF_INET, SOCK_STREAM, 0); sceNetConnect(sock, (struct sockaddr *)&server, sizeof(server)); // Get font path char path[256] = "/"; int length = 11; getSandboxDirectory(path + 1, &length); strcpy(path + 11, "/common/font/DFHEI5-SONY.ttf"); // Open for reading, and get size int fd = open(path, O_RDONLY, 0); struct stat s; fstat(fd, &s); // Allocate buffer and read char *buffer = malloc(s.st_size); read(fd, buffer, s.st_size); close(fd); // Send sceNetSend(sock, buffer, s.st_size, 0); free(buffer); sceNetSocketClose(sock); // Return to browser return 0; }
static inline int ps4link_send(int sock, void *buf, int len, int flag) { int ret; ret = sceNetSend(sock, buf, len, flag); if (ret < 0) { debugNetPrintf(DEBUG,"[PS4LINK] sceNetSend error %d\n", ret); ps4link_close_socket(); return -1; } else { return ret; } }
int _main(void) { // Init and resolve libraries initLibc(); initNetwork(); initPad(); // Connect to debug server char socketName[] = "debug"; struct sockaddr_in server; server.sin_len = sizeof(server); server.sin_family = AF_INET; server.sin_addr.s_addr = IP(192, 168, 0, 4); server.sin_port = sceNetHtons(9023); memset(server.sin_zero, 0, sizeof(server.sin_zero)); int sock = sceNetSocket(socketName, AF_INET, SOCK_STREAM, 0); sceNetConnect(sock, (struct sockaddr *)&server, sizeof(server)); // Browser /user/home/ to see all user IDs (in hex) int userID = 0x10000000; int pad = scePadOpen(userID, 0, 0, NULL); while(1) { scePadReadState(pad, data); sceNetSend(sock, data, 0x60, 0); } // Return to browser scePadClose(pad); sceNetSocketClose(sock); return 0; }