
Security News
vlt Launches "reproduce": A New Tool Challenging the Limits of Package Provenance
vlt's new "reproduce" tool verifies npm packages against their source code, outperforming traditional provenance adoption in the JavaScript ecosystem.
react-native-tcp-socket
Advanced tools
React Native TCP socket API for Android & iOS. It allows you to create TCP clients and servers sockets, simulating node's net API.
Install the library using either Yarn:
yarn add react-native-tcp-socket
or npm:
npm install --save react-native-tcp-socket
Linking the package manually is not required anymore with Autolinking.
iOS Platform:
$ cd ios && pod install && cd ..
# CocoaPods on iOS needs this extra step
Android Platform:
Modify your android/build.gradle
configuration to match minSdkVersion = 21
:
buildscript {
ext {
...
minSdkVersion = 21
...
}
Modify your android/app/src/main/AndroidManifest.xml
and add the following:
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
You then need to link the native parts of the library for the platforms you are using. The easiest way to link the library is using the CLI tool by running this command from the root of your project:
$ react-native link react-native-tcp-socket
If you can't or don't want to use the CLI tool, you can also manually link the library using the instructions below (click on the arrow to show them):
Libraries
➜ Add Files to [your project's name]
node_modules
➜ react-native-tcp-socket
and add TcpSocket.xcodeproj
libTcpSocket.a
to your project's Build Phases
➜ Link Binary With Libraries
Cmd+R
)<android/app/src/main/java/[...]/MainApplication.java
import com.reactlibrary.TcpSocketPackage;
to the imports at the top of the filenew TcpSocketPackage()
to the list returned by the getPackages()
methodandroid/settings.gradle
:
include ':react-native-tcp-socket'
project(':react-native-tcp-socket').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-tcp-socket/android')
android/app/build.gradle
:
compile project(':react-native-tcp-socket')
To use this library you need to ensure you are using the correct version of React Native. If you are using a version of React Native that is lower than 0.61
you will need to upgrade before attempting to use this library latest version.
react-native-tcp-socket version | Required React Native Version |
---|---|
3.x.x | >= 0.61 |
1.2.2 | >= 0.?? |
Import the library:
import TcpSocket from 'react-native-tcp-socket';
// var net = require('react-native-tcp-socket');
// Create socket
var client = TcpSocket.createConnection(options);
client.on('data', function(data) {
console.log('message was received', data);
});
client.on('error', function(error) {
console.log(error);
});
client.on('close', function(){
console.log('Connection closed!');
});
// Write on the socket
client.write("Hello server!");
// Close socket
client.destroy();
var server = TcpSocket.createServer(function(socket) {
socket.on('data', (data) => {
socket.write('Echo server', data);
});
socket.on('error', (error) => {
console.log('An error ocurred with client socket ', error);
});
socket.on('close', (error) => {
console.log('Closed connection with ', socket.address());
});
}).listen(12345, '0.0.0.0');
server.on('error', (error) => {
console.log('An error ocurred with the server', error);
});
server.on('close', () => {
console.log('Server closed connection');
});
createConnection()
createConnection(options[, callback])
creates a TCP connection using the given options
.
options
Required. Available options for creating a socket. It is an object
with the following properties:
Property | Type | Description |
---|---|---|
host | <string> | Required. A valid server IP address in IPv4 format or "localhost" . |
port | <number> | Required. A valid server port. |
[localAddress] | <string> | A valid local IP address to bind the socket. If not specified, the OS will decide. It is highly recommended to specify a localAddress to prevent overload errors and improve performance. |
[localPort] | <number> | A valid local port to bind the socket. If not specified, the OS will decide. |
[interface] | <string> | The interface to bind the socket. If not specified, it will use the current active connection. The options are: "wifi" . |
write()
data
: <string> | <Buffer> | <Uint8Array>
encoding
: <string>
. Only used when data
is string
. Default: utf8
.callback
: <Function>
write(data[, encoding][, callback])
sends data on the socket. The second parameter specifies the encoding in the case of a string — it defaults to UTF8 encoding.
listen()
listen(port[, host])
creates a TCP server socket listening on the given port. If the host is not explicity selected, the socket will be bound to '0.0.0.0'
.
Looking for maintainers!
The library is released under the MIT license. For more information see LICENSE
.
FAQs
React Native TCP socket API for Android & iOS with SSL/TLS support
We found that react-native-tcp-socket demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
vlt's new "reproduce" tool verifies npm packages against their source code, outperforming traditional provenance adoption in the JavaScript ecosystem.
Research
Security News
Socket researchers uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
Research
The Socket Research Team discovered a malicious npm package, '@ton-wallet/create', stealing cryptocurrency wallet keys from developers and users in the TON ecosystem.